[PHP] String trennen

DadyCool

Well-known member
ID: 81813
L
30 April 2006
601
19
Hallo

ich habe einen String in dem auch der html tag fürs bild, also <img src ="xyz"> drin vorkommen kann.


jetzt habe ich mittels:

PHP:
if (strlen($tmpTxt) >= 250) { $tmpTxt = substr($tmpTxt,0, 250) . "..."; }

den String abgeschnitten.

Ich denke man kann das Problem bereits erahnen ;) Es wird z.B. daraus
"ich bin ein text mit Bild <img src="images/format/smil...

wie kann ich das einrichten, dass er den kompletten img Tag (oder allgemein html Tags) nicht als x Zeichen beachtet sondern nur als 1 Zeichen sieht, damit er den nicht mitten drin trennt? bzw. auch richtig schließt


Danke

DadyCool
 
du kannst ja die Position des letzten geöffneten Tags suchen mit "strpos()" Und wenn danach kein geschlossener mehr kommt, dann soll er den eben direkt nach dem geschlossenen Tag abschneiden....

Also
PHP:
<?php
$text1 = "original String der natürlich länger sein sollte als der geschnittene";
$text = "dein geschnittener String String";
if(strlen($text) > 255) //oder halt eben wie lang er max sein soll
{
$openhtml = strpos("\<",$text);
if(strpos("\>",$text1,$openhtml) < 255)
{
$text = substr($text1,0,strpos("\>",$text1,$openhtml));
}
}
Aber damit kannst du natürlich auch nicht abdecken, dass z.B. <b> geöffnet wurde aber nicht geschlossen... das wäre dann eine erheblich aufwändigere Klasse...

p.s.: auf den Code geb ich keine Garantie hab ich mir eben zusammen gereimt... Geht mir nur um die Idee dahinter