reguläre ausdrücke... klappt nicht..

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

  • reguläre ausdrücke... klappt nicht..

    Hi! Habe mir mal das Tutorial durchgelesen, und mir eine Codezeile mit regulären ausdrücken gebastelt:

    PHP-Code:
     $text preg_replace("!\[php\](.*?)\[/php\]!i",convertphp($1),$tut[text]); 
    geht nicht, es kommt dieser Fehler:

    Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in ++++++++++\wiewowarum\content.php on line 40
    Kann mir jemand helfen?
    @Tobiaz, ich dachte mir, dass das appz und script gesuche Forum nicht der richtige Ort wäre, um das fortzusetzen...

    EDIT:
    hab schon was rausgefunden, sieht jetzt so aus:
    PHP-Code:
            $text preg_replace("!\[php\](.*?)\[/php\]!i",convertphp("\$1"),$tut[text]); 
    Allerdings zeigt er jetzt auf der Seite ein $1 an...

    Zuletzt geändert von OliOli; 05.10.2003, 11:53.

  • #2
    ist schon okay hier!

    aber warum übernimmst du es nicht wie in dem beispiel (allerdings ohne zu escapen).

    Kommentar


    • #3
      weil dann der Fehler kommt...

      Wenn ich nur convertphp($1) benutze, dann taucht der Fehler auf, wenn ich $1 escape und in Klammern setze, dann führt er auf jeden Fall die Funktion aus, und ich erhalte was mit <pre>.

      Nur ganz oben auf der Seite steht eine $1 ich hab keinen Plan warum...

      Kommentar


      • #4
        also erstmal solltest Du die [ und ] escapen und dann vielleicht so:

        preg_replace("!\[php\](.*)?\[/php\]!i",convertphp("$1"),$tut[text]);

        der Trick sind die "
        Zuletzt geändert von MelloPie; 05.10.2003, 12:12.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          edit:

          sry hab nicht gesehen dass du schon editiert hattest..
          Also das gleiche ergebnis, er zeigt was mit <pre> an, aber
          die $1 ganz oben ist immer noch da.

          Hier mal meine ganzen zugehörigen Sachen:

          [PHP]function convertphp($text) {
          $neu = stripcslashes($text);
          $neu = htmlentities($neu);
          $neu = highlight_string($neu);
          $neu = "<pre>".$neu."</pre>";
          return $neu;
          }
          --------------------------------------
          $text = preg_replace("!\[php\](.*)?\[/php\]!i",convertphp("$1"),$tut[text]);
          --------------------------------------

          $tut[text]:
          -----
          iajsgdhilv
          PHP-Code:
           $text preg_replace("!\\[php\\](.*?)\\[/php \\]!i",convertphp($1),$tut[text]);[/PHP 
          ich hab in die [ php ] tags leerzeichen wegenh dem Forum reingemacht
          Zuletzt geändert von OliOli; 05.10.2003, 12:17.

          Kommentar


          • #6
            Kann mir keiner helfen?

            Ich habs mal kurz ein bisschen umgeschrieben:

            $text = preg_replace("!\[php\](.*)?\[/php\]!i",highlight_string("$1"),$tut[text]);

            der gelcihe Fehler, oben wird $1 angezeigt, und sonst nichts...
            wenn ich allerdings statt einer funktion einfach <b> oder so nehme, gehts perfekt...

            Kommentar


            • #7
              lass erst mal die function in replacement weg, und schreibt da nur die $1 hin.

              Kommentar


              • #8
                es liegt an highlight_string diese Funktion ist folgendermassen aufgebaut:
                void highlight_string ( string str)


                d.h. sie hat keinen Rückgabe wert...
                Du solltest die highlight_string einfach aus Deiner Funktion rausnehmen und dann vor den Rückgabe wert setzen oder vor das preg_replace...
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  juhu mellopie, danke!

                  Jetzt geht es, aber wie bau ich die highlight_string funktion ein? Das hab ich nicht so ganz kapiert....

                  Kommentar


                  • #10
                    $text = preg_replace("! ...
                    highlight_string($text);
                    zB.
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar


                    • #11
                      dann wird aber der ganze Text gehighlightet und nicht nur das php stück.. kann ich das nciht in meine Funktion mit reinbauen?

                      PHP-Code:
                      function convertphp($text) {
                          
                      $neu stripcslashes($text);
                          
                      $neu htmlentities($neu);
                          
                      $neu "<pre>".$neu."</pre>";
                          return 
                      $neu;

                      Kommentar


                      • #12
                        teste das mal:
                        PHP-Code:
                        function convertphp($text) {
                            
                        $neu stripcslashes($text);
                            
                        $neu htmlentities($neu);
                        //--- schnipp
                        ob_start();                
                        highlight_string($neu);   
                        $high ob_get_contents();
                        ob_end_clean();
                        //--- schnapp
                            
                        return "<pre>".$high."</pre>";

                        Kissolino.com

                        Kommentar


                        • #13
                          hm... also eigentlich müsste der phpcode doch schön farbig dargestellt werden oder?

                          Bei mir ist er schwarz.. Muss jetzt erstmal durchblicken bei deiner Funktion, danke trotzdem.

                          EDIT:
                          mkay, das mit dem ob_ zeugs hab ich verstanden... jetzt bliebe nur noch zu klären, warum highlight_string nichts buntes liefert...
                          Zuletzt geändert von OliOli; 05.10.2003, 13:52.

                          Kommentar


                          • #14
                            bevor das ganze durch highlight_string() läuft solltest du
                            das mal einsetzen:
                            PHP-Code:
                            $neu = "<?".$neu." ?>";
                            Kissolino.com

                            Kommentar


                            • #15
                              jetzt zeigt er nicht mehr meinen eingegeben code an sondern:

                              <?$1 ?>

                              das da.

                              Kommentar

                              Lädt...
                              X