ersetzen Sie \n mit ist-neue-Zeile-Zeichen-code
Ich bin ziehen Inhalte aus einer DB wurde desinfiziert mit mysql_real_escape_string.
Dementsprechend wurde die neue-Zeile-Zeichen erscheinen jetzt als "\n".
Das Problem ist, dass diese Inhalte angezeigt, die zu Benutzern innerhalb eines < pre > - tag, so kann ich nicht ersetzen \n mit < br/> zum Beispiel.
Ich glaube, ich könnte ersetzen \n die mit dem eigentlichen utf8-Zeichen-code vor dem einfügen das Ergebnis innerhalb des < pre>.
Kann somoneone helfen hier? Nicht mit mysql_real_escape_string ist nicht wirklich eine option, aufgrund der Sicherheits-policy.
Dank.
- Ich bin ein bisschen verwirrt, normalerweise Ihre Daten zurückgegeben werden sollen, ohne Umschreibung. Die Art und Weise, die Sie es beschreiben, es ist, als wenn die Daten gingen durch mysql_real_escape_string() zweimal, bevor gespeichert wird
- Es klingt eigentlich wie Sie über-sanitized der Daten durch die Flucht es zweimal. Wenn Sie in
mysql_real_escape_string("two\nlines");
es wird ein echtes\n
Charakter in der Datenbank. Wenn Sie die Daten aus, sollte es keine Notwendigkeit, Sie zu ersetzen\n
zurück. Wenn Sie halten es auf diese Weise, erwarten Probleme mit " und " sowie. - vielleicht bist du ein Opfer der irrsinnigen "magic_quote" - Funktion in php - stellen Sie sicher, dass Sie deaktivieren Sie es, es verwirrt nur diejenigen, die bewusst das Konzept der Flucht.
- In der Tat sieht es wie die Daten entgangen war zweimal. Ich bin mit Zend_db und es scheint, dass es mit mysql_real_escape_string standardmäßig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
"\n"
statt single quotes'\n'
aus irgendeinem Grund.warum nicht ...
Wenn Sie haben nichts getan, um die raw-Daten zurück gezogen aus der Datenbank dann die ptoblem vor, dass es wurde 'desinfiziert', zweimal eingefügt.
C.
Könnte dies ein wenig helfen:
echo('test\ntest');
zeigt wie
test
aber
echo("test\ntest");
zeigt wie
test
test