Auszug aus einem Text

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by subabrain; 24-09-2005, 19:21.

    Comment


    • #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.

      Comment


      • #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
        Last edited by fox34; 24-09-2005, 21:23.

        Comment


        • #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.

          Comment

          Working...
          X