[PHP] Funktionen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von eYo, 4. September 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 4. September 2006
    Funktionen

    Hallo, ich habe eine Datei in der ich meine PHP Funktionen definiere.

    Unter anderem werden dort die Smilie Replace's festgelegt, z.B. durch

    PHP:
    <? php

    function  smilies ( $str )
     {
        
    $str  str_replace ( ':D' '<img src="images/smilies/blasmilie.gif" alt="blasmilie" />' $str );

      return 
    $str ;
    }

    ?>
    Jetzt aber was anderes. Ich möchte gerne eine Quote-Funktion in mein Forum integrieren. Bisher habe ich es folgendermaßen realisiert:

    PHP:
    // Normaler Quote //

            
    $str  preg_replace ( '=\[quote\](.*)\[/quote\]=Uis' ,
                                
    '<br \><table class="quote"><tr><td><b>Zitat:</b></td></tr><tr><td>\1</td></tr></table>' ,
                                
    $str );

    // Ende Normaler Quote //

    // Erweiterter Quote mit Verfasser des Zitierten Textes //

            
    $str  preg_replace ( '#\[quote=(.*)\](.*)\[/quote\]#Uis' ,
                                
    '<br \><table class="quote"><tr><td><b>Zitat: \1</b></td></tr><tr><td>\2</td></tr></table>' ,

    // Ende Erweiterter Quote mit Verfasser des Zitierten Textes //

    Mein Problem ist jetzt, dass ich nicht in einem Quote ein weiteresmal Quoten kann. Wie realisiere ich das? Wenn ich jetzt aus der MySQL-Tabelle den Text auslesen lasse:

    PHP:
    <? php  echo  kotfunktion ( $f [ 'text' ]);  ?>
    Dann zeigt er mir wenn in der Tabelle steht:

    [ quote ]blablubb
    [ quote ]blaaaaa[ /quote ]
    [ /quote ]

    (ich musste da jetzt leerzeichen hinmachen sonst hätten mir die BBCode Funktionen vom vB da tatsächlich Quotes rausgemacht -.-)

    Den ersten Quote richtig in der Tabelle an und dann zeigt er mir unter dem "blablubb" den normalen text weiter an, also [ quote ]blaaa.
    Unter dem Quote steht dann einzeln nochmal [ /quote ]

    Ich möchte aber jetzt z.B. mehrere Tabellen in einer angezeigt haben (mehrere Quotes in einem).

    Ich hoffe mir kann jemand helfen...
     

  2. Anzeige
  3. #2 4. September 2006
    hab jetzt gute 10 minuten rumgegoogelt und nix finden können. aber n begriff, der dir vielleicht bei der suche helfen können, ist "nested quotes".
     
  4. #3 4. September 2006
    AW: Funktionen

    Google mal nach BB Code Parser, da wirst du fündig. Findeste alles, [B ] [I ] [U ] [QUOTE blabla.. ;)
     
  5. #4 4. September 2006
    AW: Funktionen

    Ich hab alle anderen BBCodes, nur mein Quote BBCode funktioniert nicht :(
     
  6. #5 4. September 2006
    AW: Funktionen

    PHP:
     $str  preg_replace ( "(\[quote\](.+?)\[\/quote\])is" , "</p><blockquote>\\1</blockquote><p>" , $str );
            
    $str  preg_replace ( "(\[quote=(.+?)\](.+?)\[\/quote\])is" , "</p><blockquote><b>By $1:</b><br />$2</blockquote><p>" , $str ); 
    meine version des ganzen einmal mit quelle einmal ohne
     
  7. #6 4. September 2006
    AW: Funktionen

    Das funktioniert bei mir irgendwie auch nicht :(
    Dann wird ebenfalls wieder nur das erste [ quote] und das 1. [ /quote] benutzt, danach steht wieder nur der Text da wie ich ihn geschrieben hab :(


    EDIT:

    habe jetzt etwas was wohl funktioniert aber ich versteh jetzt nicht wie ich das mit dem "[ quote=nickname]" mache, das könnte mir nicht zufällig kurz jemand umschreiben? :X

    PHP:
     $open  '<blockquote style="border: 1px solid #000000; padding: 4px;">' ;
            
    $close  '</blockquote>' ;

            
    // How often is the open tag?
            
    preg_match_all  ( '/\[quote\]/i' $str $matches );
            
    $opentags  count ( $matches [ '0' ]);

            
    // How often is the close tag?
            
    preg_match_all  ( '/\[\/quote\]/i' $str $matches );
            
    $closetags  count ( $matches [ '0' ]);

            
    // Check how many tags have been unclosed
            // And add the unclosing tag at the end of the message
            
    $unclosed  $opentags  $closetags ;
            for (
    $i  0 $i  $unclosed $i ++) {
                    
    $str  .=  '</blockquote>' ;
            }

            
    // Do replacement
            
    $str  str_replace  ( '[quote]' $open $str );
            
    $str  str_replace  ( '[/quote]' $close $str ); 
    Danke im vorraus.


    EDIT 2:

    Habs zwar schon vor längerer Zeit gelöst aber ich schreibs mal rein, vielleicht kanns irgendwann mal jemand gebrauchen (vorrausgesetzt dieser "jemand" benutzt dann die Suchfunktion :) )

    PHP:
    $str  preg_replace ( '=\[quote\]=Uis' , '<table><tr><td><span class="smallfont"><b>Zitat:</b></span></td></tr><tr><td>' , $str );
    $str  preg_replace ( '=\[/quote\]=Uis' , '</td></tr></table>' , $str );
            
    $str  preg_replace ( '=\[quote\=(.*)\]=Uis' , '<table><tr><td><span class="smallfont"><b>Zitat: \1</b></span></td></tr><tr><td>' , $str );
    $str  preg_replace ( '=\[/quote\]=Uis' , '</td></tr></table>' , $str );
     

  8. Videos zum Thema
Die Seite wird geladen...
Similar Threads - PHP Funktionen
  1. Antworten:
    7
    Aufrufe:
    884
  2. Antworten:
    4
    Aufrufe:
    704
  3. Antworten:
    4
    Aufrufe:
    419
  4. [PHP] Curl funktionen

    MAsterRg , 15. Mai 2010 , im Forum: Webentwicklung
    Antworten:
    7
    Aufrufe:
    1.242
  5. Antworten:
    1
    Aufrufe:
    473