HTML und XHTML zusammen
blambler
- php
hi.
bei meinem Gästebuch wird mit der PHP-Funktion nl2br() "\n" zu "<br />" . Da "<br />" aber XHTML ist (womit ich mich im Übrigen überhaupt nicht auskenne), kommen bei mir ein paar Fragen auf:
1. Ist es schlimm, wenn XHTML-Elemente in HTML-kompatiblen Seiten sind? Haben XHTML-Dateien die Endung xhtml?
2. Wie kann ich <br /> zu <br> umwandeln?
Ich bin glücklich über jede Antwort, die mir hilft :-)
euer blambler
Hallo blambler.
- Ist es schlimm, wenn XHTML-Elemente in HTML-kompatiblen Seiten sind?
Nicht zwangsläufig. Bei manchen Attributen _kann_ es zu Problemen kommen, was aber normalerweise die Browser nicht wirklich interessiert.
Haben XHTML-Dateien die Endung xhtml?
Du kannst Dokumenten mit dem Doctype XHTML auch die Endung .schlagmichtot geben, wenn dein Server das umzusetzen versteht - deutlicher: wenn es so eingestellt wurde.
- Wie kann ich <br /> zu <br> umwandeln?
Ich lerne zwar noch PHP, habe aber vorhin hier etwas von einer Funktion zum ersetzen von Strings gelesen...
Ich bin glücklich über jede Antwort, die mir hilft :-)
Ich auch. ;)
Gruß, Ashura
Ashura,
Du kannst Dokumenten mit dem Doctype XHTML
Doctype XHTML??
auch die Endung .schlagmichtot geben, wenn dein Server das umzusetzen versteht
Der Client muss das umsetzen. Und einige Browser scheinen sich eher für die Dateiendung zu interessieren als für den MIME-Typ der Datei.
Gunnar
Moin!
Der Client muss das umsetzen. Und einige Browser scheinen sich eher für die Dateiendung zu interessieren als für den MIME-Typ der Datei.
Kein Browser orientiert sich _primär_ an der Dateiendung, alle nehmen zuallererst den Mime-Typ. Dass der IE bei "verdächtigen" Mimetypen dann eine Inhaltsanalyse der gesendeten Daten macht, dürfte damit zusammenhängen, dass er ja sowieso alle möglichen Fehler korrigiert - warum nicht auch Konfigurationsfehler von Server-Administratoren?
Hi,
Dass der IE bei "verdächtigen" Mimetypen dann eine Inhaltsanalyse der gesendeten Daten macht,
Hm. Ist "text/plain" verdächtig?
cu,
Andreas
Moin!
Dass der IE bei "verdächtigen" Mimetypen dann eine Inhaltsanalyse der gesendeten Daten macht,
Hm. Ist "text/plain" verdächtig?
Wenn man Microsoft glaubt, dann ja. Ist schließlich der Default-Typ für unbekannte Dateien - auch im Apache.
Hallo,
bei meinem Gästebuch wird mit der PHP-Funktion nl2br() "\n" zu "<br />" .
2. Wie kann ich <br /> zu <br> umwandeln?
Wieso ersetzt du \n mit nl2br() durch <br />, um dann <br /> durch <br> zu ersetzen? Wieso nimmst du nicht einfach $string = str_replace("\n", '<br>', $string);
Mathias
Vielen Dank. Das war die Lösung. Diese Funktion habe ich gesucht.
Aber warum funktioniert folgender code nicht?
str_replace(""",""",$table);
Ich will " einfach zu " werden lassen (verdammte entities). Wie kann ich das bewerkstelligen?
Hallo blambler,
str_replace(""",""",$table);
Ich will " einfach zu " werden lassen (verdammte entities). Wie kann ich das bewerkstelligen?
So: str_replace('"',""",$table);
Gruß
Alexander Brock
Hallo,
So: str_replace('"',""",$table);
Also bevor ich das abgeschickt hatte war das noch richtig !?
Eigentlich wollte ich folgendes schreiben:
str_replace('"','"',$table);
Gruß
Alexander Brock
Moin!
Ich will " einfach zu " werden lassen (verdammte entities). Wie kann ich das bewerkstelligen?
stripslashes() - aber nur, wenn magic_quotes_gpc eingeschaltet ist (abfragen mit get_magic_quotes_gpc()).
hi,
Wieso ersetzt du \n mit nl2br() durch <br />, um dann <br /> durch <br> zu ersetzen? Wieso nimmst du nicht einfach $string = str_replace("\n", '<br>', $string);
weil dann noch \r unberücksichtigt bleibt ;-)
je nach system kann der zeilenumbruch als \n, \r oder auch \r\n dargestellt werden.
deshalb wird hier des öfteren empfohlen, gleich auf die hex-entsprechungen dieser zeichen abzufragen, bspw. hier http://forum.de.selfhtml.org/archiv/2004/1/t69370/#m399013.
gruß,
wahsaga
Hallo,
Wieso ersetzt du \n mit nl2br() durch <br />, um dann <br /> durch <br> zu ersetzen? Wieso nimmst du nicht einfach $string = str_replace("\n", '<br>', $string);
weil dann noch \r unberücksichtigt bleibt ;-)
Stimmt.
je nach system kann der zeilenumbruch als \n, \r oder auch \r\n dargestellt werden.
Wenn schon kompliziert, dann richtig: Zuerst einmal werden wahrscheinlich POST-Daten an das PHP-Script übergeben, die dann irgendwie serverseitig gespeichert werden (Dateien, Datenbank usw.). Browser müssen Zeilenumbrüche als \r\n senden, aber man sollte das Script freilich möglichst tolerant schreiben. Neuere PHP-Versionen Schreiben und Lesen Dateien ohne Änderung der Zeilenumbrüche, daher würde die HTTP-Eingabe direkt gespeichert, ausgelesen und wieder in die HTML-Seite geschrieben. Ob man die Zeilenumbrüche beim Speichern vereinheitlicht, bleibt einem überlassen, am Ende sollte ein str_replace oder preg_replace('/\r\n|\r|\n/', "<br>\n") aber ein eindeutiges Ergebnis haben (z.b. nur \n).
deshalb wird hier des öfteren empfohlen, gleich auf die hex-entsprechungen dieser zeichen abzufragen
Jetzt widersprichst du dir. Perl hat ein logisches Newline, PHP nicht. "\r\n" reicht in PHP (und in den dortigen regulären Ausdrücken) aus.
Mathias
你好 molily,
Wenn schon kompliziert, dann richtig: Zuerst einmal werden wahrscheinlich
POST-Daten an das PHP-Script übergeben, die dann irgendwie serverseitig
gespeichert werden (Dateien, Datenbank usw.). Browser müssen
Zeilenumbrüche als \r\n senden, [...]
Nun, das stimmt 1) nur fuer x-form-url-encoded und 2) verstossen da diverse
Browser gegen, u.a. verschiedene aeltere Versionen des Opera (AFAIR einige
6er, weiss nicht mehr 100%). Deshalb sollte man die Zeilenumbrueche, wenn
man auf genau definierte Daten angewiesen ist, immer vereinheitlichen.
deshalb wird hier des öfteren empfohlen, gleich auf die
hex-entsprechungen dieser zeichen abzufragenJetzt widersprichst du dir. Perl hat ein logisches Newline, PHP nicht.
"\r\n" reicht in PHP (und in den dortigen regulären Ausdrücken) aus.
Nein, das ist nur bedingt wahr. Wenn du \r\n in Double-Quotes benutzt,
stimmt das, weil dann direkt die Byte-Values an die Regex-Engine gegeben
werden. In Single-Quotes greifen die Escape-Sequenzen der Regex-Engine,
und da ist es dann uU wieder was ganz anderes...
再见,
克里斯蒂安
Hallo,
Browser müssen Zeilenumbrüche als \r\n senden, [...]
Nun, das stimmt 1) nur fuer x-form-url-encoded
Ja, von application/x-www-form-urlencoded habe ich gesprochen.
und 2) verstossen da diverse Browser gegen
Ja, darauf habe ich hingewiesen.
u.a. verschiedene aeltere Versionen des Opera (AFAIR einige 6er, weiss nicht mehr 100%).
Kann ich nicht reproduzieren, ist aber egal.
Wenn du \r\n in Double-Quotes benutzt, stimmt das, weil dann direkt die Byte-Values an die Regex-Engine gegeben werden. In Single-Quotes greifen die Escape-Sequenzen der Regex-Engine, und da ist es dann uU wieder was ganz anderes...
Unter welchen Umständen?
http://de.php.net/manual/en/reference.pcre.pattern.syntax.php / http://www.pcre.org/pcre.txt
\n newline (hex 0A)
\r carriage return (hex 0D)
Mathias
你好 molily,
Ja, [...]
Ja, [...]
Dann verstehen wir uns ja :)
Wenn du \r\n in Double-Quotes benutzt, stimmt das, weil dann direkt
die Byte-Values an die Regex-Engine gegeben werden. In Single-Quotes
greifen die Escape-Sequenzen der Regex-Engine, und da ist es dann uU
wieder was ganz anderes...Unter welchen Umständen?
Kann ich dir nicht mehr sagen, aber AFAIR hatte ich da in einer aelteren
libpcre-Version mal Probleme mit. Ist aber schon zu lange her als das ich
da genaueres sagen koennte. Bei aktuellen Versionen sollte es keinen
Unterschied machen, aber wie gesagt, Vorsicht ist die Mutter der Porzellankiste.
再见,
克里斯蒂安