Idee gesucht: Zeichenkette bis zum 10. Leerzeichen ausgeben.

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

  • Idee gesucht: Zeichenkette bis zum 10. Leerzeichen ausgeben.

    Hallo, @ all !

    Ich bin auf der Suche nach einer passenden Funktion oder einer guten Idee um eine Zeichenkette z.B. nur bis zum 10. Leerzeichen auszugeben.

    Also, ich habe einen ganzen Satz in einer Variablen, und möchte nicht mit substr() arbeiten, da dann ja evtl. Wörter zerschnitten werden. Wie kann ich es erreichen, dass erst nach dem x-ten Leerzeichen abgeschnitten wird? Gibt es hierfür vielleicht schon was passendes?

    Hab schon vergeblich gesucht, nix tolles gefunden...
    Gruss,

    Volker

  • #2
    mal rumstöbern auf meine HD ... .... ok, gefunden:
    PHP Code:
    <?php
    //Funktion, um zu lange Wörter zu trennen, z.B. als Spam schutz.
    //Aufzutufen mit: textwrap($text, $anzahlzeichen)

    function textwrap($text,$c)
    {
      
    $splitted=explode("\n",$text);
      
    $anzahl=count($splitted);
      for(
    $i=0;$i<=$anzahl;$i++)
      {
        
    $zeile=$splitted[$i];
        
    $wordsline="";
        if(
    strlen($zeile)>=$c)
        {
          
    $splitline=explode(" ",$zeile);
          
    $anzline=count($splitline);
          for(
    $j=0;$j<=$anzline;$j++)
          {
            if(!
    preg_match("(http|www)",$splitline[$j]))$wordsline.=wordwrap($splitline[$j],$c," ",1)." ";
            else 
    $wordsline.=$splitline[$j]." ";
          }
          
    $zeile=$wordsline;
        }
        
    $ergebnis.=$zeile."\n";
     }
     return(
    $ergebnis);
    }
    ?>
    EDIT:
    naja, mal wieder net richtig gelesen, ich sollt pennen gehen ...
    Last edited by davidovich; 24-07-2004, 00:58.

    Forumregeln!

    Gute PHP-(tutorial-)Seiten

    Comment


    • #3
      Code:
       /([^ ]+ ){10,}/isU
      http://www.php-resource.de/tutorials/read/10/1/
      zb.
      Die Zeit hat ihre Kinder längst gefressen

      Comment


      • #4
        ich bastle mir gerade sowas ähnliches für mein blog.

        ich will die beiträge auf ca. 500 kürzen, aber natürlich auch nicht mitten im wort abschneiden.

        zusätzlich will ich die 500 zeichen noch auf die wirkliche ausgabelänge des textes bezogen wissen, also z.b. bb-code wie [ url=...]linktext[/url], wo ja effektiv bei der anzeige nur die länge von "linktext" zählt, auch mit einberechnen.


        dafür sind die ctype-funktionen recht praktisch, mit denen man sehr gut ermitteln kann, ob ein zeichen wirklich eine "druckbare" oder grafische ausgabe erzeugt, oder nur ein steuerzeichen ist o.ä.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Comment


        • #5
          wenn der text aus einer datenbank kommt und du nicht wie wahsaga
          bbcode berücksichtigen willst, könnte SUBSTRING_INDEX (mysql-manual)
          dein freund werden.
          Kissolino.com

          Comment

          Working...
          X