In der Original-CSV-Datei sind die Leerzeilen 0A0A
Nach Behandlung mit:
$test = preg_replace('~(?s)[\r\n]{2}~', '', $test);
>
> und Eitrag in debug.txt
>
> ~~~php
file_put_contents('./debug.txt', $test);
>
> sind aus den 0A0A der Ursprungsdatei nun 5C6E5C6E geworden, was \n\n entspricht.
>
> Und nun?
Nimm stets nur Code, den Du auch verstehst.
Habe ich Deine Aufgabe richtig verstanden? Leerzeilen sind solche, die außer Zeilenumbrüchen NICHTS enthalten. Oder willst Du was anderes?
[code lang=php]<?php
$test='Hallo'
. "\r\n\r\n"
. "\n\n"
. "\r\r"
.'
Welt!
';
function effektiver_leerzeilen_entferner($str) {
$str=str_replace("\r", "\n", $str);
return preg_replace("/\n{2,}/", "\n", $str);
}
function kaum_umstaendlicher_leerzeilen_entferner($str) {
$str=str_replace("\r", "\n", $str);
$flag=1;
while ($flag) {
$str = str_replace("\n\n","\n",$str, &$flag);
}
return $str;
}
function umstaendlicher_leerzeilen_entferner($str) {
$str=str_replace("\r", "\n", $str);
$ar=explode("\n", $str);
$str='';
foreach ($ar as $s) {
$s=trim($s, "\r\n");
if ($s) {
$str .= $s;
$str .= "\n";
}
}
return $str;
}
print "\nVariante 1:" . effektiver_leerzeilen_entferner($test);
print "\nVariante 2:" . kaum_umstaendlicher_leerzeilen_entferner($test);
print "\nVariante 3:" . umstaendlicher_leerzeilen_entferner($test);
print "\n";
?>