Text nach x Zeichen kürzen

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

  • Text nach x Zeichen kürzen

    Ich gebe mit Hilfe einer while-Schleife 10 Datenbankeinträge in einer Tabelle aus. Da bei einigen dieser Einträge die Texte zu lang sind, wollte ich diese nach x Zeichen kürzen.

    Dazu verwende ich folgende Funktion:
    PHP-Code:
    function TextAbschneiden($Text$Laenge)
    {
        return 
    substr($Text0strpos(wordwrap($Text$Laenge"*!U-M-B-R-U-C-H*"), "*!U-M-B-R-U-C-H*"));

    Danach kommt meine while-Schleife:
    PHP-Code:
    $sql mysql_query("SELECT * FROM datenbank WHERE downloads IS NOT NULL ORDER BY lastdownload DESC LIMIT $limit");
    while(
    $row mysql_fetch_array($sql)){
        
    $Text $row['title'];
        
    $Laenge "70";
        
    $title TextAbschneiden($Text$Laenge);
        echo 
    $title
    Leider funktioniert das Script nicht so wie ich mir das vorgestellt habe. Problem ist, dass bei einer Länge von 70 Zeichen gar nichts angezeigt wird, bei einer Länge von 40 Zeichen dagegegen, werden ein paar Einträge angezeigt.

    Kann mir jemand sagen was ich falsch gemacht habe?
    Das Genie überblickt das Chaos!

    Wer Rechtschreibfehler findet, darf sie behalten!

  • #2
    debugging -angaben?

    Kommentar


    • #3
      Das Problem ist, dass ich keine Fehlermeldung erhalte. Es wird einfach nicht korrekt angezeigt.
      Das Genie überblickt das Chaos!

      Wer Rechtschreibfehler findet, darf sie behalten!

      Kommentar


      • #4
        Was schlägst du da mit wordwrap() um dich?

        Du hast einen String unbekannter Länge.
        Wenn der länger als x Zeichen ist, soll er auf x Zeichen gekürzt werden.

        In PHP übersetzt:
        PHP-Code:
        $text 'whatever';
        if (
        strlen($text) > $x$text substr($text0$x); 

        Kommentar


        • #5
          @nerd: denke mal, dass er nicht mitten im Wort abschneiden will.

          Kommentar


          • #6
            und ... wozu das if(). ist der text kürzer als $x würde auch in voller länge übernommen.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7


              Naja, vielleicht hatte da jemand vor, den gekürzten String mit drei Punkten... zu versehen Fehlt nur noch einiges an Code.

              Kommentar


              • #8
                wenn das ganze eh aus der datenbank kommt, frag ich mich, warum er, sie, es nicht SUBSTRING_INDEX() benutzt?
                Kissolino.com

                Kommentar


                • #9
                  @onemorenerd: richtig, ich wollte, wie von TobiaZ erkannt, dass der Text nicht mitten in einem Wort umgebrochen wird, deshalb wordrap().

                  @Abraxax: auch hier hat TobiaZ das Ganze richtig erkannt, ich wollte umgebrochenen Text mit drei Punkten versehen. Check aber langsam nicht mehr durch im Script.

                  @Wurzel: Die Funktion kenn ich noch gar nicht, werd mich gleich mal drüber informieren. Erfüllt diese Funktion denn alle bisher genannten Bedingungen?
                  Das Genie überblickt das Chaos!

                  Wer Rechtschreibfehler findet, darf sie behalten!

                  Kommentar


                  • #10
                    @Abraxax: auch hier hat TobiaZ das Ganze richtig erkannt, ich wollte umgebrochenen Text mit drei Punkten versehen. Check aber langsam nicht mehr durch im Script.
                    Dann würde ich das aber auch richtig machen und die 3 Zeichen (...) auch noch vom string abziehen

                    Kommentar

                    Lädt...
                    X