steffen: ist das mit einem Regulären Ausdruck möglich?

Hallo Nachteulen,

wäre diese Funktion als Regulärer Ausdruck möglich?

function one_wordwrap($string,$width){  
  $s=explode(" ", $string);  
  foreach ($s as $k=>$v) {  
    $cnt=strlen($v);  
    if($cnt>$width) $v=wordwrap($v, $width, "<br />", true);  
      $new_string.="$v ";  
  }  
  return $new_string;  
} 

Falls jemand Ideen hat, nur raus damit ;)

mfg steffen

  1. Hello Du Uhu,

    wäre diese Funktion als Regulärer Ausdruck möglich?

    function one_wordwrap($string,$width){

    $s=explode(" ", $string);
      foreach ($s as $k=>$v) {
        $cnt=strlen($v);
        if($cnt>$width) $v=wordwrap($v, $width, "<br />", true);
          $new_string.="$v ";
      }
      return $new_string;
    }

      
    Möchtest Du unsere Restenergie beim Rätselraten verbraten, oder hast DU auch eine Funktionsbeschreibung? Also keine, die beschreibt, was die Funktion mcht, sondern eine, die beschreibt, was sie machen soll!  
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
    Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>
    
    1. Hallo Tom,

      die Funktion baut in eine String <br> ein, so das die einzelnen Stücke die länge von $width  hat.

      mfg Steffen

      1. @@steffen:

        nuqneH

        die Funktion baut in eine String <br> ein, so das die einzelnen Stücke die länge von $width  hat.

        Und was willst du da mit einem regulären Ausdruck, der unperformanter ist als einfache Stringoperationen?

        Qapla'

        --
        Bildung lässt sich nicht downloaden. (Günther Jauch)
        1. Rein aus interesse Gunnar :)

        2. Hallo,

          Performanz

          Und was willst du da mit einem regulären Ausdruck, der unperformanter ist als einfache Stringoperationen?

          zu dieser allgemeinen Meinung habe ich in den letzten Jahren auch immer wieder durch Belege mittels Tests beigetragen. In PHP (getestet habe ich gerade mit einem 5.3.0rc2, VM goto, PCRE lib 7.9 2009-04-11) hat sich einiges geändert. PCRE sind nunmehr fester Bestandteil von PHP, können nicht mehr zum Kompilierungszeitpunkt modularisiert oder ganz ausgelassen werden.

          In meinem Test habe ich die folgende Funktion mit preg_replace() verglichen. preg_replace() fakelt seine Aufgabe 40mal so schnell ab!

          function one_wordwrap($string,$width){  
            $new_string='';  
            $s=explode(" ", $String);  
            foreach ($s as $k=>$v) {  
              $cnt=strlen($v);  
              if($cnt>$width) $v=wordwrap($v, $width, "<br />", true);  
                $new_string.="$v ";  
            }  
            return $new_string;  
          }  
          $n=one_wordwrap($string,5);  
          $n=preg_replace("/(\S{5}+(?=\S))/",'$1<br />$2',$string);
          

          Gruß aus Berlin!
          eddi

          --
          Ab einem gewissen Erkenntnisstand ist die Versuchung wohl zu groß, in diesem und seinen begleitenden Errungenschaften zu verharren.
          Das nenne ich Aufblick zu den Stufen des Tempels von der geistigen Gosse aus!
          1. Hello,

            In meinem Test habe ich die folgende Funktion mit preg_replace() verglichen. preg_replace() fakelt seine Aufgabe 40mal so schnell ab!

            function one_wordwrap($string,$width){
                $new_string='';           ## genau! das wollte ich eigentlich auch für mich behalten :-)

            $s=explode(" ", $String);
              foreach ($s as $k=>$v) {
                $cnt=strlen($v);
                if($cnt>$width) $v=wordwrap($v, $width, "<br />", true);
                  $new_string.="$v ";
              }
              return $new_string;
            }

            $n=one_wordwrap($string,5);
            $n=preg_replace("/(\S{5}+(?=\S))/",'$1<br />$2',$string);

              
            Dazu interessiert natürlich immer der Testaufbau. Jede Messung ist nur so gut, wie ihre Bewertbarkeit. Alter Spruch von meinem Prof. Und: Jede Messung verfälscht das Ergebnis. ;-)  
              
            Also bitte nachliefern.  
              
              
              
              
            Liebe Grüße aus dem schönen Oberharz  
              
              
            Tom vom Berg  
            ![](http://selfhtml.bitworks.de/Virencheck.gif)  
              
            
            -- 
            Nur selber lernen macht schlau  
            <http://bergpost.annerschbarrich.de>
            
            1. Hi Tom,

              Dazu interessiert natürlich immer der Testaufbau. Jede Messung ist nur so gut, wie ihre Bewertbarkeit. Alter Spruch von meinem Prof. Und: Jede Messung verfälscht das Ergebnis. ;-)

              Der Aufbau ist nach wie vor der gleich Archiv: (PHP) geschwindigkeit von for-Schleifen. Die einzelnen Funktionen/Prozeduren werden jeweils in zwei for-Schleifen N-mal abgearbeitet.

              Eigentlich kann man nur hoffen, dass es an der neuen PCRE-Lib liegt. Andernfalls zeigte nämlich die feste Integration PCREs in PHP die lahme API.

              (Menschellei:)
              Wenn ich den alten thread so durchlese fällt mir wieder so einiges ein. Auch ich habe mal mit SuSE angefangen und Christoph Zurnieden, deren sehr bissige Antworten mir teilweise sehr halfen, ist hier gar nicht mehr anzutreffen.

              Gruß aus Berlin!
              eddi

              --
              Ab einem gewissen Erkenntnisstand ist die Versuchung wohl zu groß, in diesem und seinen begleitenden Errungenschaften zu verharren.
              Das nenne ich Aufblick zu den Stufen des Tempels von der geistigen Gosse aus!
  2. Hallo,

    function one_wordwrap($string,$width){

    $s=explode(" ", $string);
      foreach ($s as $k=>$v) {
        $cnt=strlen($v);
        if($cnt>$width) $v=wordwrap($v, $width, "<br />", true);
          $new_string.="$v ";
      }
      return $new_string;
    }

      
    `preg_replace("/(\S{".$width."}+(?=\S))/",'$1<br />$2',$string);`{:.language-php}  
      
    allerdings befürchte ich, dass das RegEx eben genau das macht, was Deiner Funktion macht, somit auch innerhalb von Worten einen HTML-Umbruch setzt.  
      
      
    Gruß aus Berlin!  
    eddi  
    
    -- 
    Ab einem gewissen Erkenntnisstand ist die Versuchung wohl zu groß, in diesem und seinen begleitenden Errungenschaften zu verharren.  
    Das nenne ich Aufblick zu den Stufen des Tempels von der geistigen Gosse aus!