wordwrap soll HTML auslassen

Ecthelion

Erfahrenes Mitglied
Hallo zusammen,

Ich hab mal wieder ein Problem. Google und die Forensuche wollen mir nicht so ganz helfen also deswegen der Thread.

Frage:

Aus Layoutgründen habe ich bis jetzt immer die Einträge für News etc. mit wordwrap nach 40 Zeichen unterbrochen.
Nun gibts aber mit einer neuen Funktion auch HTML Befehle in der News. Diese werden auch getrennt sodas Link nicht richtig klappen oder sonst irgendwelche Fehler auftauchen.

Ich bräuchte eine Funktion oder den Anstoss dazu wie ich wordwrap sage, dass es HTML befehle bzw. was in
<> steht auslässt.

Vielen Dank für die Mühe und Vorschläge!

MfG

Ecthelion
 
Du könntest die durchtrennten Tags ganz einfach wieder zusammenführen:
PHP:
preg_replace('/(<[^>]*?)\n([^>]*?>)/', '\1\2', wordwrap($string, 40))
 
Danke schonmal für die schnelle Antwort.

Kannst du mir vielleicht noch ein oder zwei Worte zu dem script sagen?
Ich steig da nicht ganz durch. Oder wo ich darüber was nachlesen kann?

MfG

Ecthelion
 
Ich hab mal was dran rungespielt.
Der script von dir klappt jetzt abe rmeiner will irgendwie nicht :(

PHP:
$inhalt = preg_replace('/(\[[^\]]*?) ([^\]]*?\])/', '$1$2', wordwrap($inhalt, 30, " ",1));

//Ersätzen der Sondereingaben
//Erst werden die Links wieder umgewandelt
$inhalt = preg_replace('/\[ URL=(.*?)\] (.*?) \[ \/URL\]/i', '<a href="$1" target="new">$2</a>', $inhalt);
//[ URL=http://www.tagesschau.de] tagesschau[ /URL]
//wird umgwandelt, aber längere Links nicht... wo ist der Fehler

Danke für die Hilfe
 
Ok habs geschaft.

Hier nochmal der Code für die Leute die es auch gerne wissen möchten:
PHP:
$inhalt = preg_replace('@\[URL=(.*?)\](.*?)\[/URL\]@si', '<a href="$1" target="new">$2</a>', $inhalt);
 
Zurück