Markus: String nach 100 Zeichen abbrechen

Hallo Leute,
ich setz hier zum ersten Mal was rein, und hoffe ihr enttäuscht mich net ...des halb viele Antworten bitte ;-)

Ich hab folgendes Problem:
Ich lese mithilfe eines Arrays verschiedene Texte aus der DB, welche später in einer HTML Seite untereinander angezeigt werden sollen. Diese Texte sollen auf 100 Zeichen gekürzt werden und am Schluss sollte immer ein "..." stehen, sowie ein Link "<mehr>" welcher beim Klicken den gesamten Text anzeigt.
Wenn der Text weniger als 100 Zeichen erhält, dann soll natürlich nix passieren :-p

Ich hoff die Beschreibung is ausführlich genug, hab auch schon nach dem Thema gegoogelt und auch schon Lösungen gefunden, allerdings waren die sehr speziell und für meinen Fall nicht brauchbar!

Dann mal ran an die Tasten...

lg Markus

  1. Hello,

    Dann mal ran an die Tasten...

    Hast Du schon einen ausgegeben?

    Harzliche Grüße vom Berg und Frohe Weihnachtszeit

    Tom

    --

    Nur selber lernen macht schlau
    zweifeln lassen :-)

  2. Hi,

    Dann mal ran an die Tasten...

    Dann mal ran ans Manual - RTFM, Stringfunktionen

    Ich hoff die Beschreibung is ausführlich genug, hab auch schon nach dem Thema gegoogelt und auch schon Lösungen gefunden, allerdings waren die sehr speziell und für meinen Fall nicht brauchbar!

    Kategorie: Billige Ausrede?

    MfG ChrisB

    1. "Kategorie: Billige Ausrede?"

      Hab es hinbekommen, ich weiss ja nicht wie du dir das vorstellst Chris, aber ich denke nach nicht mal 3 Monaten Programmieren wusstest du auch net wie man sowas hinbekommt.

      Frohe Weihnachten und einen guten Rutsch!!

      Hab folgenden Code verwendet:

      <?          $string = $Bewertung["bewertung"];     $B_laenge = strlen($string) ;      if($B_laenge>50){
                $treffer = substr($Bewertung["bewertung"],10);
       $teil = strpos($treffer, " ");
       $gesamt = (10 + $teil);
       $ausgabe = substr($Bewertung["bewertung"], 0, $gesamt);
       $B_kurz = str_replace($string, $ausgabe, $string)?>
                <span><?=$B_kurz?>...</span></td>
                <?} else {?>
                       <span><?=$string?></span></td>
               <?}?>

      1. Hallo Markus,

        "Kategorie: Billige Ausrede?"
        Hab es hinbekommen,

        siehste, hatter doch recht gehabt haben tun, gelle ... ;-)

        Uebrigens, wenn Du nach "teaser" gesucht haettest, waere Dir diese
        Funktion untergekommen:

        function get_Teaser($eing, $xx=55) {  
            if (strlen($eing) <= $xx) return $eing;  
            $ausg = substr($eing,0,$xx);  
            $x2 = strrpos($ausg, ' ');  
            return substr($ausg,0,$x2).' ...';  
        }
        

        Gruss Norbert

      2. Hello,

        Hab folgenden Code verwendet:

        <?php

        keine Kurztags (shortopen tags) benutzen.

        $string = $Bewertung["bewertung"];
           $B_laenge = strlen($string) ;

        Warum hire erst umkopiert und nicht gleich z.B.

        $blen = strlen($_bewertung["bewertung"]);

        Ständiger Wechsel zwischen Groß-/Kleinschreibung bei Variablennamen verwirrt

        if($B_laenge>50)
           {
             $treffer = substr($Bewertung["bewertung"],10);
             $teil = strpos($treffer, " ");

        $teil kann nun identisch false werden (=== false), wenn kein Leerzeichen

        in $treffer enthalten ist. Hast Du das irgendwo bedacht?

        $gesamt = (10 + $teil);
             $ausgabe = substr($Bewertung["bewertung"], 0, $gesamt);
             $B_kurz = str_replace($string, $ausgabe, $string)
        ?>

        Diese Mischung von HTML und PHP ist unglücklich.

        Halte Dich besser an das EVA-Prinzip http://de.wikipedia.org/wiki/EVA-Prinzip

        Eingabe - Verarbeitung - Ausgabe

        <span><?php echo {$B_kurz}; ?>...</span></td>
             <?} else {?>
                 <span><php echo $string; ?></span></td>
             <?}?>

        Harzliche Grüße vom Berg und Frohe Weihnachtszeit

        Tom

        --
        Nur selber lernen macht schlau

  3. Dann mal ran an die Tasten...

    lg Markus

    Hallo Markus,

    hast ja schon ne Lösung gefunden

    vielleicht interesiert dich aber die einfache Variante:

    $produkt_text_kurz = substr($produkt_text_kurz,0,100);
    $produkt_text_kurz .= "...";

    Eben kurz zur Erklärung: substr gibt 100 Zeichen aus von Position 0

    wenn man die führende Null ändert, verschiebt sich der Ausschnitt dementsprechnend, durch Änderung der Zahl 100 ändert man die Anzahl der Zeichen

    Ich wünsche allen ein frohes Fest und nen guten Rutsch
    Edgar

    Professionelle Internetauftritte Kostenloser Homepagetest