\n geht verloren
-
Habe folgenden Code (natürlich ohne die Leerzeichen in den Code Tags):
$string = htmlentities($string); $string = nl2br($string); while (preg_match('/[ code](.*?)[\/ code]/is', $string, $Code)) { $NewCode = preg_replace('/<br \/>/', '', $Code[1]); $string = preg_replace('/'.preg_quote('[ code]'.$Code[1].'[/ code]', '/').'/is', '<pre>'.$NewCode.'</pre>', $string); }
Nun ist in $string ein '\n'. Dies geht durch diesen Code aber leider verloren und wird zu chr(13). Welche Funktion macht das und wie kann ich das verhindern?
Danke
-
http://de3.php.net/manual/de/function.htmlentities.php
in dem du nl2br vorher schreibstedit:bin mir net sicher kann auch shittalk sein ... weil ich kein apache dahab ..
-
Ne, daran liegt es nicht. \n ist kein HTML Sonderzeichen (es sind zwei Zeichen, ein \ und ein n)
-
du hast "\\n" und "\n" in deinem Code
anders gesagt: wird bei einem echo $string; das \n als Text sichtbar?
-
\n da ist das \ ein escape zeichen ....
-
bei '\n' nicht, nur bei "\n"
-
\ ist nur dann ein Escapezeichen, wenn ich " und " benutze (tue ich aber nicht, ich benutze ' und ').
Wenn ich $string vor allem ausgebe, habe ich ein \\n (kommt daher, dass ich in ein Formular \n geschrieben habe und dies per POST übertragen wurde).
Die Frage ist jetzt, wo dieses \n (\\n wird in \n umgewandelt, normal) als Escapezeichen gesehen wird und nicht als zwei seperate Zeichen.
-
ich krieg das mit deinem code nichtna simuliert
-
Ich auch nicht - aber lass dir doch einfach nach jedem Schritt $string ausgeben, dann siehst du ja, wo der Fehler ist
-
*peinlich* der Fehler ist gar nicht in dem Code Stück, sondern lag an einem fehlenden mysql_escape_string.
Da habe ich allerdings ein anderes Problem (siehe anderer Thread).