<?php
function halfer(string $string): array
{
$result = [];
$result['explode2'] = explode("\n", $string, 2);
$result['preg_split2'] = preg_split("~\R+~", $string, 2, PREG_SPLIT_NO_EMPTY);
$newlinePosition = strpos($string,"\n");
$result['substrs'] = [substr($string, 0, $newlinePosition), substr($string, $newlinePosition)];
$result['nlP'] = preg_split("~\n~" ,$string, $newlinePosition);
return $result;
}
$strings = [
'two newlines' => "1st line\n2nd line\n3rd line",
'leading newline' => "\n1st line\n2nd line\n3rd line",
'lone trailing newline' => "1st line\n",
'no newlines' => "1st line",
'double newlines' => "1st line\n\n2nd line",
'\r\n' => "1st\r\n2nd",
];
foreach ($strings as $label => $string) {
echo "$label\n";
echo json_encode(halfer($string), JSON_PRETTY_PRINT);
echo "\n---\n";
}
preferences:
27.43 ms | 408 KiB | 5 Q