Hi!
Ich habe mir ein kleines CMS-Script geschrieben, bei dem man durch ein Textfeld Daten in eine MySQL-Datenbank schreiben kann. Die Zeilenumbrüche (\n) werden mit in die Datenbank übernommen und später auf der Seite, auf der der Text erscheinen soll, mittels nl2br() in <br> umgewandelt.
Solange kein PHP-Code im Text enthalten ist, funktioniert das auch einwandfrei, aber sobald PHP-Code enthalten ist, gibt es das Problem, dass auch bei dem Code die Zeilenumbrüche in <br> umgewandelt werden und so eine korrekte Syntax nicht mehr möglich ist..
Nun hab ich mir gedacht, mittels Regulären Ausdrücken erst den ganzen PHP-Code "rauszufiltern", bei allen anderen Textsegmenten die \n in <br> umzuwandeln und dann wieder alles zusammenzusetzen. Da weiß ich aber auch noch nicht, ob und wie das funktioniert..
Ich hab jedenfalls schon mal ein RegExp geschrieben, um erst mal nur den PHP-Code rauszufiltern:
PHP-Code:
preg_match('/(.*?)(<\\?php)(.*?)(\\?>)((.*)?)/is', $inhalt, $array);
Dann soll eben in $array[3] der PHP-Code enthalten sein, er enthält aber nur den ersten <?php ... ?>-Abschnitt, weil der Text mehrere <?php ... ?>-Abschnitte enthält und nicht bloß einen...
Kann mir da jemand einen Tipp zu geben, wie das besser zu lösen ist?
Giddy up ;-)
Cosmo Kramer