nl2br - was ist los?

danube

Erfahrenes Mitglied
hallo,

ich war schon fast am durchdrehen weil bei meinem skript die zeilenumbrüche mit der nl2br funktion plötzlich durch
PHP:
<br />
ersetzt werden. erst hab ich gedacht dass würde an meinen skripten liegen aber dann hab ich durch zufall das gleiche in quellcodes von anderen seiten gesehen (unter anderem auch in diesem forum)

was ist da los?
 
ehrlich, ich könnte schwören dass es vor einer woche noch nicht so war! warum ist dass dann bei meinen daten in der datenbank von vor einer woche nicht so?
 
villeicht hast du zuerst

nl2br($string);

und dann htmlentities($string); gemacht?


edit: go hat die southpark maschine entdeckt :-) thuper
 
wenn er das gemacht hätte, würde auch nicht <br /> ausgegeben, sondern gar nichts an der stelle.
htmlentities wandelt alle html-sonderzeichen ( also auch "<" ) in den entsprechenden html-code um und hätte somit auch das <br /> ungültig gemacht.

nl2br hat schon immer \n durch <br /> ersetzt.
hat mich auch gewundert, aber da es auch funzt, nicht weiter interessiert.

sag doch mal warum das so ein problem ist.
oder war´s einfach nur mal so gefragt?
 
aber danube hat recht, mit seiner behauptung, dass php nicht von anfang an mit <br /> ersetzt.

mein ehemaliger "win-apache 1.3" mit "php 4.0irgendwas" hat mit <br> ersetzt.

aber xhtml kann ja wenigstens von php benutzt werden, wenn sich sonst schon kaum einer daran hält.
 
>sag doch mal warum das so ein problem ist.
>oder war´s einfach nur mal so gefragt?

es nervt ziemlich weil ich alle skripte kontrollieren und umschreiben muss bei denen besucher irgendwas mit formularen eingeben und editieren können. denn bei einem eingabefeld bei dem der inhalt aus einer db gelesen wird muss das <br /> erst ersetzt werden, sonst steht es im eingabefeld. und wer sich nicht damit auskennt denkt es sei ein fehler (hab dadurch zig emails bekommen)

ausserdem versteh ich den sinn nicht ganz, aber jetzt weiss ich wenigstens das es "normal" ist und nicht an meinen skripten liegt:-)
danke!
 
Zuletzt bearbeitet:
jetzt sag bloß du wandelst den text um, bevor du ihn in die mysql-tabelle schreibst ?!
das wäre der größte schwachsinn, den ich jemals gelesen hätte (nicht böse sein, is aber so).
wenn du deinen text formatiert ausgeben willst, dann lies ihn aus der tabelle aus, in der er noch nicht formatiert steht, und wandel ihn dann erst um ;)
und wenn er in einem textfeld ausgegeben werden soll, brauchst du ihn gar nicht umzuwandeln.

mfg
 
Zurück