Klasse für textarea -> XHTML gesucht
Jeena Paradies
- php
Hallo,
Kennt einer von euch ne php Klasse, die Text aus der textarea in xhtml wandelt? Es geht mir vor allem um Zeilenumbrüche und die blockelemente die dann noch drin sind wie listen und hx Überschriften <blockquote> und so weiter ich dachte zwar dass ich das hinbekommen habe, aber da muss ich so viele Ausnahmen machen, und so viel berücksichtigen dass ich den Überblick verloren habe.
Grüße
Jeena Paradies
Hallo!
Kennt einer von euch ne php Klasse, die Text aus der textarea in xhtml wandelt?
Möchtest Du generel das nur leere Elemente (<br>, <img> etc.) geschlossen werden oder das der Quelltext valide ist?
Geht es auch mit JavaScript:
http://www.hotscripts.com/Detailed/36186.html habe das Teil noch nie probiert
Ansonsten fällt mir da nur Tidy (http://de2.php.net/tidy) ein, wenn es bei Dir installiert ist oder Du es installieren kanst. Damit habe ich aber auch noch nie gearbeitet.
MfG, André Laugks
Hallo,
Möchtest Du generel das nur leere Elemente (<br>, <img> etc.) geschlossen werden oder das der Quelltext valide ist?
Es geht darum dass ich, wenn ich es so mache wie ich es jetzt mache manchmal blöde Verschachtelungsfehler im Quellcode habe. Ich benutze noch die Alte bbcode Klasse von Christian Seiler, und versuche danach je nachdem wie viele \n (welche die Klasse zu <br /> umwandelt) eingegeben wurden und je nach dem ob es sich um ein Blockelement handelt oder inline den Quelltex so hinzubekommen dass er egal was der Benutzer eingibt valide ist.
Die Klasse wandelt [headline]Ein Text[/headline]\n in <h2>Ein Text</h2>\n um und auch [b]hallo[/b] in <strong>hallo</strong>. Danach wandelt sie \n in <br />\n um.
Ich habe mir dann eine Funktion gebastelt, die mir die ganzen <br /> in richtige Absätze umwandeln sollte:
<?php
// Absätze erzeugen
function convertparagraphs ($text) {
$replace = array(
"<br />\n<hr /><br />\n",
"<br />\n<br />\n",
"<p><ul>",
"<br />\n<ul>",
"</ul><br />",
"</ul>\n</p>",
"<br />\n<h2>",
"</h2>",
"<p><h2>",
"</h2></p>",
"</h2>\n<br />\n",
"<p><blockquote><p>",
"<br />\n<blockquote><p><br />\n",
"<br />\n</p></blockquote>\n<br />\n",
"<br />\n<blockquote><p>",
"</p></blockquote>\n<br />",
"</p></blockquote>\n</p>"
);
$to_this = array(
"</p>\n<hr />\n<p>",
"</p>\n<p>",
"<ul>",
"</p>\n<ul>",
"</ul>",
"</ul>",
"</p>\n<h2>",
"</h2>",
"<h2>",
"</h2>",
"</h2>\n<p>",
"<blockquote><p>",
"</p>\n<blockquote><p>",
"</p></blockquote>\n<p>",
"</p>\n<blockquote><p>",
"</p></blockquote>\n<p>",
"</p></blockquote>"
);
return str_replace($replace, $to_this, "<p>".$text."</p>");
}
?>
Sie ist jetzt schon lang und dennoch total unvollständig denn sie Produziert manchmal sachen wie
[...]
</ul>
</p>
Das ist irgendwie zu komplex für mich da alle möglich auftretenden Fälle mir zusammenzureimen, und dann durch ersetzungen den Quellcode zu bereinigen. Ich habe heute im Chat mit Christian gesprochen, und er schreibt die Klasse neu, und anders. Es dauert zwar noch ein wenig, und er steckt gerade auch mitten bei der Absatzkontrolle, aber wenn er fertig ist dann kann die Klasse das übernehmen, und auch noch einiges mehr. Ich bin schon auf das Endergebniss gespannt.
Aber es muss doch so etwas auch schon geben, denn es gibt ja schon einige Seiten mit validem Quellcode, die von Laien mit Inhalten gefüttert werden oder nicht?
Geht es auch mit JavaScript:
http://www.hotscripts.com/Detailed/36186.html habe das Teil noch nie probiert
Sachen gibt's.
Ansonsten fällt mir da nur Tidy (http://de2.php.net/tidy) ein, wenn es bei Dir installiert ist oder Du es installieren kanst. Damit habe ich aber auch noch nie gearbeitet.
Das währe vielleicht eine Alternative, aber ich kann es vor dem Jahreswechsel nicht benutzen, denn erstenst ist es leider nicht auf meinem Server installiert und wenn es installiert währe dann hätte ich eine zu alte php version drauf.
Danke trotzdem für deine Mühe.
Grüße
Jeena Paradies