text mit html elementen nach x Zeichen trennen

supersalzi

Erfahrenes Mitglied
Hey,

ich vermute ich wiederhohle eine Frage, aber ich konnte nichts finden um mein Problem zu lösen.

Ich möchte von einem längeren Text nur ein Stück ausgeben. Der Text kommt aus einer Datenbank und enthält html Elemente.
Das funktioniert auch alles.
Das Problem ist nur, dass es mir manchmal ein html Tag zerreist. Wie könnte ich dass den lösen?

mein bisheriger Code:
PHP:
$text_all = explode(' ', $row[text]);
for($x = 0; $x < 80; $x++){
  echo $text_all[$x]." ";
  }
  if($text_all["81"]){
  	echo "...";
	}

Danke schonmal!
 
Ja, es geht um einen Blog, und so eine kleine Vorschau.
Ist der Text länger erscheint ein Link "Weiter". Und im Text wird dann an entsprechender Stelle eine kleine Grafik angezeigt, damit der Leser sofort die Stelle zum Weiterlesen findet.

man sieht es auf meiner website.
 
Das Problem bei deiner Sache ist ja, dass man überprüfen muss wenn ein Tag aufgemacht worden ist, wo es wieder zugemacht wird.
 
Das Problem ist nur, dass es mir manchmal ein html Tag zerreist. Wie könnte ich dass den lösen?
Prüfen, welches der beiden Zeichen < und > zuletzt auftrat; in etwa so:

PHP:
$text = 'blababla <p style="text-align: center;">ppppp</p>';
//nun wollen wir nach 20 zeichen abschneiden
$htmltag = false;
for($i = 0;$i < 20;$i++) {
 switch($text{$i}) { 
  case "<" :
   $end = $i-1;
   $htmltag = true;
   break;
  case ">":
   $htmltag = false;
   break;
 }
}
if(!$htmltag)
 $cut = substr($text,0,20);
else
 $cut = substr($text,0,$end);
So ganz ungefähr + ungetestet.
 
Zuletzt bearbeitet:
ok, danke.
das ist eine Richtung zu denken.

Ich dachte eigentlich, man könnte evt. auch was mit Regulären Ausdrücken machen?
irgendwie ein bisschen eleganter...
 
Zurück