regexp über mehrere zeilen

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

  • regexp über mehrere zeilen

    hallo zusammen,

    ich möchte z.B. folgenden code:

    PHP-Code:
    <script language="JavaScript">
    <!--
    function ...
    {
    ......
    }
    function ...
    {
    ......
    }

    //-->
    </script
    mit preg_replace erkennen und z.B. mit folgendem ersetzen:

    "XXX"


    habe es mit folgendem rexexp ausdruck versucht:

    PHP-Code:
    $inhalt preg_replace ("#<script language=\"JavaScript\"><!--(.*)\/\/--></script>#isU""XXX"></script>\n", $inhalt); 
    leider erfolglos, ich glaube das problem könnte das erkennen über mehrer zeilen sein....?!


    Was sagt Ihr dazu?

  • #2
    Re: regexp über mehrere zeilen

    Original geschrieben von frickler
    ich glaube das problem könnte das erkennen über mehrer zeilen sein....?!


    Was sagt Ihr dazu?
    Ich glaube, dass Problem liegt darin, dass du dein Muste rnicht so aufgebaut hast, wie du es laut preg_quote hättest tun sollen
    PHP-Code:
    echo '<xmp>';
    echo 
    preg_quote('<script language="JavaScript"><!--''#');
    echo 
    '(.*)';
    echo 
    preg_quote('//--></script>''#');
    echo 
    '</xmp>'
    die xmp-tags sind nur dazu da, dass du beim testen alles siehst, sonst werden dir die js-tags nicht angezeigt
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ich glaube das problem könnte das erkennen über mehrer zeilen sein.
      zwischen dem öffnenden script-tag und dem öffnenden kommentar-tag befindet sich mindestens ein zeilenumbruch? den du im pattern nicht berücksichtigst? das gleiche bei den schließenden tags?
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        PHP-Code:
        $inhalt preg_replace ('#\\<script language\\="JavaScript"\\>\\<\\!--(.*)//--\\>\\</script\\>#isU''XXX'$inhalt); 
        das ding sieht jetzt so aus, allerdings wird der code immernoch nicht erkannt.

        benutze ich die richtigen modifier?
        Zuletzt geändert von frickler; 12.11.2004, 16:46.

        Kommentar


        • #5
          wie berücksichtige ich den denn im pattern, ich dachte über modifier s

          Kommentar


          • #6
            hmm,

            ja, s ist für die mehrzeiligkeit des . [punkt] daß also der zeilenumbruch auch als 'jedes zeichen' gilt ...

            im regexp kannst du doch den \r\n direkt angeben, oder du schreibst ein konstrukt wie \s* oder so ....

            http://pcre.nophia.de/evaluate/adea1...dex.php#output
            http://pcre.nophia.de/evaluate/2a511...dex.php#output

            http://pcre.nophia.de/evaluate/df590...dex.php#output
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              danke für die hilfe!

              falls es jemanden interessiert:

              PHP-Code:
              $inhalt preg_replace ('~<script language=\\"JavaScript\\">\\s*<!--(.*)//-->\\s*</script>~is''XXX'$inhalt); 
              so siehts aus und funktioniert!

              Kommentar

              Lädt...
              X