Fred Furunkelstein 2012: Nochmal der (die) Hexcode(s)

Beitrag lesen

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";  
?>