Wortmengen auf 5 begrenzen

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

  • Wortmengen auf 5 begrenzen

    Hallo zusammen,

    ich versuche in php die Wortmengen von "$row->description" auf 5 zu begrenzen!

    Ich versuchte es schon so aber ohne Erfolg:
    HTML-Code:
    <td>
    <?php 
    preg_match('/(\w+\s*){5}/', $row->description);					
    echo $row->description[0];  
    ?>
    </td>
    Wer kann mir helfen?

    Gruss Raggazzi

  • #2
    Hallo,

    preg_match ändert nie den Suchstring, schon gar nicht in ein Array. Beachte den Parameter $matches in der Doku und taste dich ggf. mit print_r ran.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      hab ich die frage falsch verstanden, oder kann man nicht einfach das 4. vorkommen eines leerzeichens verwenden ?

      Kommentar


      • #4
        Zitat von Peacie Beitrag anzeigen
        hab ich die frage falsch verstanden
        Nein.

        Zitat von Peacie Beitrag anzeigen
        kann man nicht einfach das 4. vorkommen eines leerzeichens verwenden ?
        Kann man – also das fünfte und dann dort abschneiden.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Hallo Raggazzi,

          ich denke dies sollte dir weiterhelfen:

          PHP-Code:
          //Dieses Skript dient nur zum begrenzen eines Vorgegebenen Strings

          function splitString($str,$maxWords)
          {
              
          $strTemp ""//New String
              
          $x 0//Array Counter
              
          $y 0//Space Counter
              
              
          while($x<strlen($str) && $y<=($maxWords-1))
              {
                  if(
          $str[$x]=="&#32" || $str[$x]== " ")
                  {
                      
          $y++;    
                  }
                  
          $strTemp[$x] = $str[$x];
                  
          $x++;    
              }
              return 
          implode("",$strTemp);    
          }

          $str "Das ist ein Test String, der maximal 3 Wörter ausgeben darf";

          //Anschließend kannst du die Funktion folgendermaßen Aufrufen:
          echo splitString($str,3); 
          Viele Grüße
          Marc

          Kommentar


          • #6
            Oder einfach so:

            PHP-Code:
            $text 'abd def ghi jkl mno pqr stu vwx yz';
            $words 5;
            echo 
            implode(' 'array_slice(explode(' '$text), 0$words)); 
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Oder eventuell etwas performanter, da nicht der gesamte Text zerlegt wird:
              PHP-Code:
              echo implode(' 'array_slice(explode(' '$text$words+1), 0, -1)); 

              Kommentar


              • #8
                @ AmicaNoctis , danke =) wieder was gelernt :P

                Kommentar


                • #9
                  Zitat von fab-s Beitrag anzeigen
                  Oder eventuell etwas performanter, da nicht der gesamte Text zerlegt wird:
                  PHP-Code:
                  echo implode(' 'array_slice(explode(' '$text$words+1), 0, -1)); 
                  Das hat mich jetzt mal interessiert, ein kleiner Test hat ergeben dass der Unterschied ab einer Größenordnung von ca 5000 Wörtern relevant wird aber dann immerhin recht deutlich mit rund 100fachem Geschwindigkeitsgewinn. Selbst bei 300000 Wörtern bewegt sich meine Lösung noch im Millisekunden-Bereich. Die oben vorgeschlagene splitString() Funktion ist übrigens in etwa genauso schnell

                  Also zumindest bei großen Daten lohnt sich solche "Mikro-Optimierung" dann doch.

                  Kommentar

                  Lädt...
                  X