Zeilenumbruch

Wadlschrat

Mitglied
Aus dem Quelltext einer html-Datei würde ich gerne die Zeilenumbrüche entfernen. Mit $html = str_replace("\n","",$html); ist das ja auch kein Problem.
Was passiert aber, wenn im Text diese Stelle vorkommt: "c:\nutzlos\readme.txt"? Wie kann man das umgehen?
 
Nur die im PHP-Quellcode in doppelten Anführungszeichen geschrieben „\n“ werden intern von PHP durch die Bitfolge 0x0A ersetzt. Bei einfachen Anführungszeichen wird dies ignoriert.
Das heißt also ein "c:\nb" wird zu „0x61 0x3A 0x0A 0x62“ („c“=0x61, „:“=0x3A, „b“=0x62) übersetzt. Steht jedoch irgendwo ein 'c:\nb', entspricht diese „0x63 0x3A 0x5C 0x6E 0x62“ („\“=0x5C, „n“=0x6E), also tatsächlich der Zeichenfolge „c:\nb“.
Siehe dazu auch das Kapitel über Zeichenketten.

Hier etwas zur Anschauung:
PHP:
$str = "c:\n";
//$str = 'c:\n';

$chars = unpack('C*', $str);
foreach( $chars as $key => $char ) {
	$chars[$key] = sprintf('0x%02X', $char);
}
var_dump(implode(' ', $chars));
 

Neue Beiträge

Zurück