Text abschneiden bei Leerzeichen nach X Buchstaben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Text abschneiden bei Leerzeichen nach X Buchstaben

    Hallo,

    ich stehe vor folgendem Problem.
    Und zwar will ich nach 150 Buchtaben am letzten Leerzeichen den Text abschneiden. Dies mache ich so:

    PHP-Code:
    $text "Hallo das ist ein Text der mehr als 150 Zeichen enthalten soll. Darum muss ich einwenig was schreiben damit der Text auch mehr als 150 Zeichen hat. So nun sind wir bei 181 Zeichen.";
      
    if (
    strlen($text) >= '150') {
        
    $text substr($text0150);
        
    $pos strripos($text' ');
        
    $text substr($text0$pos);
    }

    echo 
    '<div>'.$text.'</div>'
    Das klappt auch wunderbar und wird auch bei "...150 Zeichen hat." ab geschnitten.

    Wenn ich jetzt allerdings HTML im Text mit drin habe, zerupft es mir meine ganze Seite. Beispiel:

    PHP-Code:
    $text 'Hallo das ist ein Text der mehr als 150 Zeichen enthalten soll. <div><a href="http://link" >Darum muss ich einwenig was schreiben damit der Text auch mehr als 150 Zeichen hat. </a>So nun sind wir bei 181 Zeichen.</div>';
      
    if (
    strlen($text) >= '150') {
        
    $text substr($text0150);
        
    $pos strripos($text' ');
        
    $text substr($text0$pos);
    }

    echo 
    '<div>'.$text.'</div>'
    im HTML würde es jetzt so aussehen:
    Code:
    <div>
    Hallo das ist ein Text der mehr als 150 Zeichen enthalten soll. <div><a href="http://link" >Darum muss ich einwenig was schreiben damit der Text</div>
    Wie man sieht, alles nach "...damit der Text" wurde abgeschnitten somit auch das ganze HTML. Der div-Kontainer und der a-Tag wurde nicht geschlossen.

    Jetzt meine Frage. Wie kann ich es am besten lösen. Die einfachst lösung wäre sicherlich das komplette HTML mit Hilfe von strip_tags() zu entfernen.
    Aber wenn sich zum Beispiel eine Tabelle im Text befindet wäre es nicht so toll.

    Gibt es irgendwie eine Möglichkeit das ich prüfen kann ob das genze HTML geschlossen wurde und erst nachdem alles geschlossenen wurde abgeschnitten wird?


    Gruß Nordin

  • #2
    Schau dir mal die Funktion truncate() in https://trac.cakephp.org/browser/tru...lpers/text.php an!

    Kommentar


    • #3
      Ähnliche Diskussion zum Thema die hier erst kürzalich geführt wurde:
      http://www.php-resource.de/forum/php...l-zeichen.html
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Ich würde die Finger von solchen Dingen lassen.
        HTML bedeutet Fliesstext.

        Was bei dir gut aussieht, sieht beim anderen ganz anders aus.

        Kommentar


        • #5
          Zitat von onemorenerd Beitrag anzeigen
          Schau dir mal die Funktion truncate() in https://trac.cakephp.org/browser/tru...lpers/text.php an!
          Genau was ich gesucht habe... so scheind es zumindest.
          Ich werde es mal eine weile testen und schauen ob ich damit Probleme bekomme was zb "Fliesstext" angeht oder ob es so funktioniert wie ich es mir vorgestellt habe.

          Kommentar

          Lädt...
          X