String nach x Zeichen abschneiden - Problem mit HTML Code

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

  • String nach x Zeichen abschneiden - Problem mit HTML Code

    Hallo,

    folgendes Problem erkläre ich mal anhand eines Gästebuchs, das machts am einfachsten.

    Also:
    Gästebucheinträge können HTML-Code, also Tabellen, Bilder etc. enthalten, welches in einer mysql Datenbank gespeichert wird.

    Bei der Ausgabe der Gästebucheinträge werden jeweils nur die ersten 250 Zeichen per substr() ausgegeben. Den Rest gibts per Link "weiterlesen".

    Problem: Befindet sich das 250. zeichen gerade mitten in einer Tabelle, einem Bild, einem Link o.ä. wird das HTML Objekt (Tabelle, Bild,..) logischerweise abgeschnitten und kann damit nicht angezeigt werden.

    Hat jemand evtl. hier eine gute Idee, wie man es geschickter anstellen oder das Problem abfangen könnte? Ich habe lange nachgedacht, bin aber zu keinem guten Entschluss gekommen, als vieler vieler Abfragen.

  • #2
    Re: String nach x Zeichen abschneiden - Problem mit HTML Code

    die entsprechenden Tags durch zufällige Werte (einen zufälligen Wert) ersetzen, dann das substr, dann zurück ersetzen, was noch da ist .... oder so

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      dann verzichte einfach bei vorschau auf html code
      PHP-Code:
      //$text hat der ganze html-inhalt
      $text=strip_tags ($text);
      if(
      strlen($text)>250) echo substr($text,0,250)."...";
      else echo 
      $text
      Slava
      bituniverse.com

      Kommentar


      • #4
        @ ghostgambler

        Gute Idee, Problem allerdings: Nehmen wir an, das zeichen befindet sich gerade in einer Tabelle. Ich würde dann die Tabelle abschneiden, wenn ich die zufälligen werte wieder mit HTML code zurück ersetze, hab ich dann ein angefangenes <table> das irgendwo mittendrin aufhört.

        @ slava

        Dachte ich auch schon. Problem auch bspw. wieder bei Tabellen: Ich ersetze den PHP code und übrig bleiben Tabellenwerte die kreuz und quer im Raum stehen. Keine Ahnung wo dieses Problem noch überall auftreten würde.

        Vieel Grüße,
        Achim Appel

        Kommentar


        • #5
          Original geschrieben von AchimAppel


          @ slava

          Dachte ich auch schon. Problem auch bspw. wieder bei Tabellen: Ich ersetze den PHP code und übrig bleiben Tabellenwerte die kreuz und quer im Raum stehen. Keine Ahnung wo dieses Problem noch überall auftreten würde.

          Vieel Grüße,
          Achim Appel
          was für probleme mit PHP meinst du?
          du hast doch über gästebuch gesprochen
          und Tabellenwerte die kreuz und quer im Raum stehen kannst du schnell in ordnung bringen
          PHP-Code:
          $html=<<<HTML
          <table align="TOP" width="200" height="10" cellpadding="5" cellspacing="2">
          <tr>
                   <td>Hallo</td>
                   <td>Welt</td>
          </tr>
          <tr>
                   <td>Ich</td>
                   <td>bin es</td>
          </tr>
          </table>
          HTML;
          $html=preg_replace("#\s++#"," ",strip_tags($html));
          echo 
          "<div style='background-color:#808040; color:#D8FD02;'>"
                                      
          ."$html</div>"
          Slava
          bituniverse.com

          Kommentar


          • #6
            wow, das ging mir zu schnell

            Was bewirkt denn <<<html und ebenso am Ende? hab ich noch nie gesehen...

            Gruß,
            Achim Appel

            Kommentar


            • #7
              http://de.php.net/manual/en/function.echo.php

              Kommentar


              • #8
                Original geschrieben von AchimAppel
                Was bewirkt denn <<<html und ebenso am Ende?
                ich habe einfach die Tabelle in die variable $html reingehaut.
                prinzip
                PHP-Code:
                $variablenname=<<<LABEL
                hier steht alles was du willst
                --
                ....
                LABEL; 
                dann habe ich einfach die html-tags als auch die mehr als ein mal vorkommende leerzeichen, \t,\r,\n entfernt.
                Slava
                bituniverse.com

                Kommentar


                • #9
                  Was hat eine Tabelle in einem Gästebuch verloren?...

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar

                  Lädt...
                  X