Problem mit Zeilennummern

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

  • #16
    Ich habe keine Ahnung was du machst, aber preg_replace() ist nicht das selbe wie preg_replace_callback().

    Kommentar


    • #17
      dann erklär mal bitte pleeaaase

      hab davon keine ahnung noch nie gemacht
      Mehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben.


      Albert Einstein

      Kommentar


      • #18
        hier die funktionen die ich hab

        PHP-Code:
        function linenum($texto)
        {
             
        $text=nl2br($texto);
           
        $counter=1;
           
        $text explode("<br />"$text);
                
                for(
        $i=0$i<count($text); $i++)
                {
                    
        $lines .= $counter "<br />";
                    
        $counter++;
                }
                
        $text=implode(" "$text);

            print 
        '<br><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0">
                     <tr>
                       <td bgcolor="#A4A4A4" width="5px"></td>
                       <td bgcolor="#A4A4A4" ><code>' 
        .$lines'</code></td>
                       <td bgcolor="#A4A4A4" width="5px"></td>
                       <td width="5px"></td>
                       <td><div><code><pre>' 
        .$text'</pre></code></div></td>
                     </tr>
                   </table>'
        ;    
        }

        function 
        transcode($str)
        {
            
        $str trim($str);
            
        $str htmlspecialchars($str);
            
        $str preg_replace('=\[br\]=Uis''<br>'$str);
            
        $str preg_replace('=\[b\](.*)\[/b\]=Uis','<span style="font-weight:bold;">\1</span>',$str);
            
        $str preg_replace('=\[space\]=Uis','&nbsp;',$str);
          
        $str preg_replace('=\[titel\](.*)\[/titel\]=Uis','<font size="4">\1</font>',$str);
          
        $str preg_replace('=\[middle\](.*)\[/middle\]=Uis','<center>\1</center>',$str);                          
          
        $str preg_replace('=\[hr\]=Uis','<hr color="#008000" size="1">',$str);                          
          
        $str preg_replace('=\[i\](.*)\[/i\]=Uis','<span style="font-style:italic;">\1</span>',$str);
          
        $str preg_replace('=\[u\](.*)\[/u\]=Uis','<span style="text-decoration:underline;">\1</span>',$str);
            
        $str preg_replace('=\[url\](.*)\[/url\]=Uis','<a href="\1">\1</a>',$str);                      
          
        $str preg_replace('#\[url=(.*)\](.*)\[/url\]#Uis','<a href="\1">\2</a>',$str);
          
        $str preg_replace('|\[quote\](.+)\[/quote\]|isU''\1',$str);
          
        $str preg_replace('|\[code\](.+)\[/code\]|isU''<div class=codescroll><br><pre>\1</pre><br></div>',$str);
          
        $str preg_replace('=\[img\](.*)\[/img\]=Uis','<center><img src="\1" alt="\1"/></center>',$str);
            
        $str preg_replace('|\[cpp\](.*)\[/cpp\]|Uise','linenum("\\1")',$str);    
            
        //$str = preg_replace('|\[cpp\](.*)\[/cpp\]|Uis','<code><pre>\\1</pre></code>',$str);    
                                             
            
        return $str;

        der link zum fehlerhaften test
        http://www.asajia.de/syntax.php

        so solte es aussehen nur mit zeilennummern
        http://www.asajia.de/index.php?section=api&tut=1

        bin morgen wider da muss arbeiten
        Mehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben.


        Albert Einstein

        Kommentar


        • #19
          Soll ich dir das Manual vorlesen? Womit fangen wir denn,
          mit http://php.net/preg_replace oder mit http://php.net/preg_replace_callback ?

          Kommentar


          • #20
            @ onemorenerd witzig: ok bist wohl auf das aus
            Beispiel 1506. preg_replace_callback() unter Verwendung einer rekursiven Struktur um gekapselten BB-Code zu verarbeiten
            Mehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben.


            Albert Einstein

            Kommentar


            • #21
              Hab den fehler gefunden

              PHP-Code:
              function linenum($texto)
              {
                   
              $text=nl2br($texto);
                 
              $counter=1;
                 
              $text explode("<br />"$text);
                      
                      for(
              $i=0$i<count($text); $i++)
                      {
                          
              $lines .= $counter "<br />";
                          
              $counter++;
                      }
                      
              $text=implode(" "$text);

              // und zwar hier hab in der funktion print als ausgabe verwendet stat einen string zu verwenden
              //old    print '<br><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0">
              $text ='<br><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0">
                           <tr>
                             <td bgcolor="#A4A4A4" width="5px"></td>
                             <td bgcolor="#A4A4A4" ><code>' 
              .$lines'</code></td>
                             <td bgcolor="#A4A4A4" width="5px"></td>
                             <td width="5px"></td>
                             <td><div><code><pre>' 
              .$text'</pre></code></div></td>
                           </tr>
                         </table>'
              ;
              return 
              $text;    

              Mehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben.


              Albert Einstein

              Kommentar


              • #22
                @Ascharan
                Du weisst aber schon, dass ein <br /> nur in HTML zu einer neuen Zeile führt. Im Quelltext des Browsers ist wegen <br /> nix neue Zeile. Warum explodest du nicht am Zeilenumbruch (\r\n oder \n) ?
                Ausserdem ergibt dir
                Code:
                ich bin text
                <br />
                und ich auch
                etwas wie
                Code:
                ich bin text<br /><br /><br />und ich auch
                und wenn du das dann explodest kriegst du ziemlich viele leere Arrayelemente.
                PHP-Code:
                $counter=1;
                $lines '';
                $text explode("\r\n"$textto);
                foreach(
                $text as $wert){
                  
                $lines .= $counter."\t\t".$wert."\r\n";
                  
                $counter ++;

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #23
                  jap thx is auch ne lösung
                  Mehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben.


                  Albert Einstein

                  Kommentar

                  Lädt...
                  X