PHP Zeilenumbruch
Maxx666 07.08.2002 - 09:20 6507 28
jives
And the science gets done
|
1. Bsp: Und was machst du, wenn du eine Textdatei in HTML ausgeben willst? 2. Bsp: Stell dir vor, du hats einen einfachen Text, den du irgendwo eu einer Page mit echo $text; ausgibst. Der Text ist in einer mySQL-Datenbank gespeichert, und alle User mit berechtigung können den Text editieren. Beim editieren macht man das über ein herkömmliches, mehrzeiliges html-Textfeld. Soll jetzt der Text auf der Seite so aussehen wie im Textfeld, muss man überall <br> einbauen - das ist nicht gerade übersichtlich - ganz zu schweigen vom Userkomfort. Also baust du eine Funktion ein, die bevor der Text in der DB gespeichert wird, alle \n zu <br> umwandelt. Der nächste User der einen Rechtschreibfehler entdeckt hat, will den Text editieren - und bekommt ein html/normaltext-Mischmasch. Jetzt kannst wieder zurückumwandeln usw. Hättest du statt dem echo $text; ein echo nl2br($text); verwendet, hättest du dir das alles gespart Das Sezenario hab ich oft genug bei Clanpages gesehn, die auf der Indexpage ihre Clanliga/Clanwartermine haben. Und genau das hab ich bei unserer Clanpage umgesetzt PS: Das 2. Beispiel ist wahrscheinlich saudumm, aber mir is nix gescheiteres eingefallen
|
Jehul
Big d00d
|
PS: Das 2. Beispiel ist wahrscheinlich saudumm, aber mir is nix gescheiteres eingefallen aber genau so wirds gemacht...
|
alexsb
hmm
|
Moment! Das heisst mit der Funktion wird das tatsächlich gedrückte "Enter" für eine Zeilenumbruch auch in html dargestellt? Das wär praktisch. Ich habe das so verstanden das du das so machen must
text text text text text text text text text text/n text text text text text text text text text text/n
Wie funktionert des denn hier im Forum?
|
jives
And the science gets done
|
Im Forum wahrscheinlich genau so... ähm, da wärn wir dann beim 3. Beispiel \n entspricht dem "Enterzeichen", stimmt.
|
alexsb
hmm
|
Im Forum wahrscheinlich genau so... ähm, da wärn wir dann beim 3. Beispiel
\n entspricht dem "Enterzeichen", stimmt. Ich frage jetzt nochmal nach, bevor ich meine Page umcoden kann. Ich brauche dann im Text nichts als Plain Text mit Enterzeichen zu schreiben und die Funktion macht automatisch ein <br> draus? Wo ist dann da ein /n?
|
jives
And the science gets done
|
Das \n ist nur ein Platzhalter für eine nue Zeile und wird nicht als \n, sondern eben als neue Zeile ausgegeben. Du könntest jetzt statt der Entertase nur noch \n's verwenden Du kannst es ja einfach probieren: <?php
$string1 = "Zeile1-Zeile1-Zeile1-Zeile1
Zeile2-Zeile2-Zeile2-Zeile2";
$string2 = "Zeile1-Zeile1-Zeile1-Zeile1\nZeile2-Zeile2-Zeile2-Zeile2";
echo "<b>Vorher:</b><br>";
echo "$string1<p>";
echo "$string2<p>";
$string1 = nl2br($string1);
$string2 = nl2br($string2);
echo "<b>Nacher:</b><br>";
echo "$string1<p>";
echo "$string2<p>";
?>
Vielleicht macht das das ganze etwas klarer. http://home.pages.at/kazaa/nl2br.php
Bearbeitet von jives am 09.08.2002, 00:09
|
alexsb
hmm
|
Die Funktion des /n is komplett klar(is ja in c auch net anders). Was net klar war(ist) das die Funktion auch ohne /n und nur mit einme Enter den Zeilenumbruch in ein <br> verwandelt. Das ist wirklich sinnvoll.
|
Jehul
Big d00d
|
|
jives
And the science gets done
|
Die Funktion des /n is komplett klar(is ja in c auch net anders). Was net klar war(ist) das die Funktion auch ohne /n und nur mit einme Enter den Zeilenumbruch in ein <br> verwandelt. Tut sie. @Simon: Genau genommen macht die Funktion auch ein <br /> statt dem <br>. Obs wc3-konform ist, weiß ich leider nicht.
|
Maxx666
Kitemaniac
|
is das a fehler in deiner php-version, oder wieso macht der statt am "<br>" ein "<br />" ??? das is doch nicht html-konform, oder. komisch. das dürfte schon passen, scheint nämlich xhtml konform zu sein. ausserdem hats mein browser gechecked. -> http://selfhtml.teamone.de/html/text/zeilenumbruch.htm
|
Jehul
Big d00d
|
das dürfte schon passen, scheint nämlich xhtml konform zu sein. ausserdem hats mein browser gechecked.
-> http://selfhtml.teamone.de/html/text/zeilenumbruch.htm ^ na dann ists klar kein fehler *G* is nur die frage, ob es netscape auch tscheckt. in der arbeit muss ich oft bei seiten schauen, dass sie ns 4.5 kompatibel sind (wtf). *test*
|
manalishi
tl;dr
|
sollte eigentlich kompatibel sein, da ein unbekanntes attribut in einem tag von einem browser prinzipiell ignoriert wird. wenn man den code aber noch im oldschoolstyle händisch schreibt, verzichtet ma auf den slash "/" aber meistens, da es doch etwas mühsam wird, das bei jedem <br> oder so auszutippen, denn es gibt noch einige tags, die von haus aus auch ohne attribute sinnvoll sind.
|
Jehul
Big d00d
|
sollte eigentlich kompatibel sein, da ein unbekanntes attribut in einem tag von einem browser prinzipiell ignoriert wird. wenn man den code aber noch im oldschoolstyle händisch schreibt, verzichtet ma auf den slash "/" aber meistens, da es doch etwas mühsam wird, das bei jedem <br> oder so auszutippen, denn es gibt noch einige tags, die von haus aus auch ohne attribute sinnvoll sind. <- bin a oldshooler ;D da ich oft fertige designs bekomme, da drin a bisserl php zeugs einbau ist es dann schwierig äderungen mit am wysiwyg-tool zu machen. da bleibt dann oft nur händisches editieren...
|
manalishi
tl;dr
|
händisch is eh l33t
|