Vorschautext aus einem Artikel

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

  • Vorschautext aus einem Artikel

    Hallo,

    ich überlege jetzt schon längere Zeit wie ich folgendes Problem lösen kann.

    Man hat ein normalen Text, der mit HTML Tags versehen ist. Mal ein B Tag und mal ein HREF.

    Man kann ja nicht so einfach die ersten 200 Zeichen als Vorschau ermitteln, weil es denn passieren kann, das er mitten im B Tag oder im HREF den Text unterbricht.

    Auf die schnelle würde ich immer den gesamten Text auslesen und denn mit PHP rangehen. Aber es gibt doch auch bestimmt eine elegante Lösung, das ich auch nur die ersten 200 zeichen aus der DB auslese und dabei Rücksicht aus die Tags nehme?

    Wie realisiert Ihr immer sowas?
    Gut geraten ist halb gewußt.

  • #2
    Aber es gibt doch auch bestimmt eine elegante Lösung, das ich auch nur die ersten 200 zeichen aus der DB auslese und dabei Rücksicht aus die Tags nehme?
    Ich vermute mal, dass es sehr fummelig werden würde, dies mit einer entsprechenden SQL Query zu erledigen. Vermutlich bis du wesentlich schneller den ganzen Text aus der DB zu lesen und dann den String mittels PHP (RegExp böten sich an) zu deinem gewünschten Resultat zu bekommen. Ev könnte dir das folgende weiterhelfen http://www.php-faq.de/q/q-regexp-ersetzen.html denn der RegExp darf nicht matchen solange du dich noch zwischen Anfangs- und Endtag befindest.
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Ansatzweise habe ich schon was gefunden.
      http://www.phpbuddy.eu/lange-texte-m...l-kuerzen.html

      Werde es wohl bisschen umbauen, damit auch andere Satzzeichen wie ! und ? gehen.

      Falls jemand eine interessante Lösung mit reinen SQL String hat, kann er sich "gerne" dazu äußern.
      Gut geraten ist halb gewußt.

      Kommentar


      • #4
        Willst du denn deine Tags in der Vorschau behalten? Je nach Anwendungsgebiet könnte das nämlich verwirrend sein, wenn Tags enthalten sind. Dem könntest du dann mit einem strip_tags Abhilfe schaffen.

        Edit: Bei deinem Link nehmen die auch keine Rücksicht auf die Tags.
        Zuletzt geändert von PHP-Desaster; 28.07.2008, 15:03.

        Kommentar


        • #5
          Danke für den Link.
          Ja, die Tags können in der Vorschau drinne bleiben. Ich wollte nur ungern den gesamten Text ganz auslesen und auch nicht mitten im Tag trennen.
          Verständlich.


          Aber ich denke, die beiden Links sind schon ganz brauchbar.
          Gut geraten ist halb gewußt.

          Kommentar


          • #6
            Es sollte mehr oder weniger stimmen. Dabei werden aber Zeichen wie   als 6 Zeichen gezählt. Das heisst du musst diese Zeichen erst ersetzen und danach wieder zurücksetzen. Das geht ja mit PHP ziemlich einfach.
            PHP-Code:
            $str "AUS DER DATENBANK";
            $length strlen($str);
            $chars 0;
            $tag false;
            for(
            $pos 0$chars 200 && $pos $length$pos++){
             if(
            $tag){
              if(
            $str{$pos} == ">"){$tag false;}
             }else if(
            $str{$pos} == "<" && strpos($str">"$pos)){
              
            $tag true;
             }else{
              
            $chars++;
             }
            }
            $str substr($str0$pos 1); 

            Kommentar

            Lädt...
            X