Auszug aus einem Text

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

  • Auszug aus einem Text

    Hallo Leute ,

    lese daten aus einer DB und möchte aber auf meiner Startseite meinetwegen nur die ersten 100 Zeichen anzeigen und dann mit ... aufhören lassen. Wie bei Heise.de zB.
    Welchen Befehl muss ich denn im Handbuch nachschlagen?

  • #2
    substr()



    PS: wobei bei heise.de - immer bis zum ersten punkt ausgegeben wird ^^ bzw eine eigene kurzform/überschrift angegeben wird
    Zuletzt geändert von subabrain; 24.09.2005, 19:21.

    Kommentar


    • #3
      OffTopic:
      es ist etwas radikal, die grenze bei einer konstanten zeichen anzahl zu halten. hier ein paar beispiele für die problematik:

      der bundeskanzler will die große koalition [UMBRUCH] auf keinen fall unterstützen.
      die arbeitslosenzahl in der brd fällt auf 2.000[UMBRUCH].000
      "zum augenblicke dürft' ich sagen - verweile doch, du bist so schön" j. w. goeth[UMBRUCH]e
      imho ist es besser, die stelle des umbruchs dem user zu überlassen.

      Kommentar


      • #4
        Hab schon vor längerer zeit ne Funktion geschrieben, die bei einem Leerzeichen den Text abschneidet:

        PHP-Code:
        /**
         * Schneidet einen String bei einem Leerzeichen ab
         *
         * @author fox34
         * @param string $string String, der verkuerzt werden soll
         * @param int $laenge Maximale Laenge, die der String lang sein darf
         * @example str_short("Dies ist ein Test",10");
         * @return string Verkuerzten string
         *
         */
        function str_short($string,$laenge) {
            
            
        // Mindestlaenge fuer den String, damit dieser nicht zu kurz wird.
            
        $minlaenge $laenge-5;
            
            if(
        strlen($string) > $laenge) {
                
        $fertig false;
                
        $space chr(32);
                
        $pos $laenge;
                while(!
        $fertig) {
                    if(
        $pos == $minlaenge) {
                        
        $string substr($string,0,$pos);
                        
        $string.= "...";
                        
        $fertig true;
                    } else {
                        
        $zeichen substr($string,$pos,1);
                        if(
        $zeichen == $space) {
                            
        $string substr($string,0,$pos);
                            
        $string.= "...";
                            
        $fertig true;
                        } else {
                            
        $pos--;
                        }
                    }
                }
            }
            return 
        $string;


        Wer Verbesserungsvorschläge hat, darf sie gern posten
        Zuletzt geändert von fox34; 24.09.2005, 21:23.

        Kommentar


        • #5
          Ich habe das mal so gelöst:
          PHP-Code:
          if (strlen($content) > 100) {
                
          $content wordwrap($content100"§§§");
                
          $pos strpos($content"§§§");
                
          $content substr($content0$pos);
                if (
          strlen($content) > 105) {
                    
          $content substr($content020);
                }
                } 
          Der Text wird hier nach ca. 100 Zeichen bei einem Leerzeichen gekürzt. Wird ein sehr langes Wort verwendet, (z.B. aaaaaaaaaaa...) dann wird das Wort hart getrennt. Würde mich über Verbesserungsvorschläge freuen.

          Kommentar

          Lädt...
          X