nl2br() gibt <br /> aus --> Validator bringt Fehler
Erri
- php
0 ShiNtoKu0 Fabian St.0 Erri0 Tom0 wahsaga0 Tom0 Henryk Plötz0 Tom0 Henryk Plötz0 Tom0 Henryk Plötz0 Tom
Hallo,
ich benutze die Funktion nl2br() um Zeilenumbrüche, welche von Formulareingabedaten stammen, beizubehalten.
Die Funktion ersetzt diese Ümbrüche mit <br />.
Wenn ich meine Website nun validiere erhalte ich Fehler (NET-ermöglichender Starttag).
Kann ich das " /" aus dem <br /> irgendwie entfernen?
Vielen Dank und Viele Grüße
Erri
Hallo,
Kann ich das " /" aus dem <br /> irgendwie entfernen?
Warum willst du es entfernen? Diese schreibweise zeichnet <br> nur als inhaltsleer aus und arbeitet somit XHTML-konform. Siehe dazu auch hier: http://de.selfhtml.org/html/text/zeilenumbruch.htm#erzwingen
Jedenfalls wird dein Code dadurch nicht invalide.
Viele Grüße
Patrick
Hallo ShiNtoKu,
Kann ich das " /" aus dem <br /> irgendwie entfernen?
Warum willst du es entfernen? Diese schreibweise zeichnet <br> nur
als inhaltsleer aus und arbeitet somit XHTML-konform.
SGML sieht das etwas anders, da ist <br /> aequivalent mit <br>>
Jedenfalls wird dein Code dadurch nicht invalide.
Abhaengig davon, _wo_ das <br> steht, kann das durchaus passieren.
Grüße,
CK
Hi!
ich benutze die Funktion nl2br() um Zeilenumbrüche, welche von Formulareingabedaten stammen, beizubehalten.
Die Funktion ersetzt diese Ümbrüche mit <br />.
Wenn ich meine Website nun validiere erhalte ich Fehler (NET-ermöglichender Starttag).Kann ich das " /" aus dem <br /> irgendwie entfernen?
Das ist ein Problem, wie es hier im Forum schon einmal besprochen wurde. Die Funktion nl2br() ersetzt alle \n durch den XHTML-korrekten Tag <br />, ohne jedoch eine Möglichkeit zu bieten, eventuell einen zweiten Parameter zu übergeben, der der Funktion mitteilt anstatt <br /> <br> zu verwenden. Christian Kruse hat - so weit ich weiß - den PHP-Developpern eine entsprechend korrigierte Version geschickt.
Ansonsten müsstest du eben str_replace() verwenden:
$text = str_replace("\n", "<br>", $text);
Grüße,
Fabian St.
Hi Fabian,
danke für die schnelle Antwort.
Gruß
Erri
Hello,
Ansonsten müsstest du eben str_replace() verwenden:
$text = str_replace("\n", "<br>", $text);
Bitte nicht ersetzen, sondern ergänzen:
$text = str_replace("\n", "<br>\n", $text);
Andernfalls fängt man sich ieder andere Probleme ein.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hi,
Bitte nicht ersetzen, sondern ergänzen:
$text = str_replace("\n", "<br>\n", $text);
Andernfalls fängt man sich wieder andere Probleme ein.
die da wären?
es macht m.W. in keinem browser probleme, ob nach <br> nun ein zeilenumbruch erfolgt oder nicht.
weißt du näheres?
gruß,
wahsaga
Hello,
Bitte nicht ersetzen, sondern ergänzen:
$text = str_replace("\n", "<br>\n", $text);
Andernfalls fängt man sich wieder andere Probleme ein.
die da wären?
es macht m.W. in keinem browser probleme, ob nach <br> nun ein zeilenumbruch erfolgt oder nicht.
weißt du näheres?
Wir haben das neulich erst ausführlich diskutiert, dass HTTP-Überstragungsstrecken sich leider manchmal an die Besonderheiten von POP3/SMTP halten, und nur 998 Zeichen zuzüglich maximal zwei Zeichen Zeilenumbruch pro Zeile akzeptieren. Die Browser können heute fast alle mindestens Word/halbe, also irgendwas um 65536/2 Zeichen. Einige sogar viel mehr.
Es gibt immer wieder Probleme deshalb.
Spätestens, wenn man versucht, eine solche HTML-Seite als eMail weiterzusenden, und da ist kein Punkt und Komma drin, dann kann es Probleme geben.
Wir haben einfach zuviele unterscheidliche Übertragungsmechanismen gleichzeitig im Internet, als dass man immer beahupten könnte, dass die regeln für den einen bei Übertragung über den anderen keine Probleme machen.
Wenn ich nochmalö gaaaanz viel Zeit habe, dann bereite ich die (wenigen) gesammelten Problemfälle nochmals für eine fundierte Diskussion auf.
Du solltest aber nicht so togoros behaupten, dass es keine Probleme gibt. Ein ganz prophanes ist z. B. die Lesbarkeit des Quellcodes für den Empfänger. Aber hat der denn kein Recht, mal einen Zeilenumbruch zu bekommen?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin,
Wir haben das neulich erst ausführlich diskutiert, dass HTTP-Überstragungsstrecken sich leider manchmal an die Besonderheiten von POP3/SMTP halten, und nur 998 Zeichen zuzüglich maximal zwei Zeichen Zeilenumbruch pro Zeile akzeptieren.
Nein.
Hello,
Wir haben das neulich erst ausführlich diskutiert, dass HTTP-Überstragungsstrecken sich leider manchmal an die Besonderheiten von POP3/SMTP halten, und nur 998 Zeichen zuzüglich maximal zwei Zeichen Zeilenumbruch pro Zeile akzeptieren.
Nein.
Hast Du schon genug Bits intus heute?
Anders kann ich mir diese kurze Antwort nicht erklären.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin,
Anders kann ich mir diese kurze Antwort nicht erklären.
RFC 2616, Abschnitt 7.2. Lang genug?
Hello,
Anders kann ich mir diese kurze Antwort nicht erklären.
RFC 2616, Abschnitt 7.2. Lang genug?
Dann hast Du nicht genau genug gelesen, was ich schrieb.
Dass die Theori das genaununtescheidet, und es da keine Begrenzug geben dürfte, dass haben wir hier adikutiert. Wir haben hier aber gemeinsam festgestellt, dass es international leider Abweichungen davon gibt.
Man sollte sich aus (inoffiziellen) Kompatibilitätskrierien heraus also dazu durchringen, möglichst im Bereich bis 998 Zeichen einen Zeilenumbruch zu setzen.
Das bloße Herumreiten auf eienr RFC, die nachweislich nicht jeder einhält, halte ich für ignorant und arrogant, wenn auch (zugegeben) für technisch exact.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin,
Dann hast Du nicht genau genug gelesen, was ich schrieb.
Ich habe es gelesen. Und ich habe dir widersprochen und meinen Widerspruch bewiesen. In HTTP gibt es keinerlei Begrenzung für den Body, er ist einfach eine Sammlung von 0 oder mehr Octets. Insbesondere gibt es keine Beschränkung hinsichtlich der Zeilenlänge. Es gibt nicht einmal das Konzept einer Zeile.
Über was auch immer du gesprochen hast, es ist nicht HTTP, bestenfalls sowas ähnliches.
Hello,
Über was auch immer du gesprochen hast, es ist nicht HTTP, bestenfalls sowas ähnliches.
Mann bist Du schnell....
Haupsache, dass Du auch so schnell bist, wenn dann die nächsten Leute Alarm schreien, weil,ihre Uploads oder Downloads über HTTP nicht geklappt ahben, nur weil irgendein Trottel eine Zeilenschaltung benutzt hat oder irgend ein anderer Trottel keine.
Was macht Euch eigentlich imme alle (manche) so Obrigkeitshörig und verstzt Euch in den Glauben, dass weltweit alles einheitlich in Ordnung wäre??????? (Jede Fragezeichen steht für eien Dteailfrage dieser Fragengruppe)
Harzliche Grüße aus http://www.annerschbarrich.de
Tom