private function extractNextLine($source, array $eols, &$eolUsed)
{
$minIndex = false;
$eolUsed = null;
foreach ($eols as $eol) {
$index = strpos($source, $eol);
if ($index === false) {
continue;
}
$isLonger = strlen($eol) > strlen($eolUsed);
if ($minIndex === false || $index < $minIndex || $index === $minIndex && $isLonger) {
$eolUsed = $eol;
$minIndex = $index;
}
}
return $eolUsed !== null ? strval(substr($source, 0, $minIndex + strlen($eolUsed))) : $source;
}