regexp kommentare entfernen

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

  • regexp kommentare entfernen

    Hallo,
    ich möchte per preg_replace alle Kommentare aus einem übergebenen CSS-Code entfernen. Dafür verwende ich folgenden Pattern:
    PHP-Code:
    /(\/\*[^(\*\/)]*\*\/)/ 
    Das Problem ist, das PHP die Kommentare nicht erkennt, wenn sich ein Stern (*) im Kommentar befindet (z.B. "/* *blabla* */"), das liegt vermutlich an
    PHP-Code:
    [^(\*\/)]* 
    ,
    damit möchte ich definieren, dass Innerhalb eines Kommentars kein "*/", also das Ende eines Kommentars auftreten darf (weil PHP sonst das erste und das letze Kommentar aus dem Stylesheet als Begrenzung nimmt, alles andere dazwischen, einschließlich "*/", als Kommentarinhalt interpretiert).
    Ich weiß auch nicht sicher, wie ich eine bestimmte Zeichenkette ausschließe, "*/" in Klammern zu schreiben war nur ein Versuch. Warscheinlich werden "*" und "/" doch als einzelne Zeichen interpretiert...
    Kann mir jemand helfen?
    Gruß
    jofree

  • #2
    Schon mal den Modifier U probiert?

    Kommentar


    • #3
      ja...

      PHP-Code:
      /(\/\*[^(\*\/)]*\*\/)/
      habe ich probiert, da verändert sich nichts.

      Kommentar


      • #4
        doch... es funktioniert... hatte vergessen das "[^(\*\/)]* wegzumachen...
        PHP-Code:
        /(\/\*.*\*\/)/
        danke für die hilfe!
        jofree

        Kommentar


        • #5
          Zitat von jofree Beitrag anzeigen
          doch... es funktioniert... hatte vergessen das "[^(\*\/)]* wegzumachen...
          PHP-Code:
          /(\/\*.*\*\/)/
          danke für die hilfe!
          jofree
          Code:
          $output = preg_replace("/(/*.**/)/U","",$output);
          [COLOR=Red][COLOR=Black]Wenn man dieses Pattern in ein preg_replace einsetzt, erscheint folgende Fehlermeldung:

          [/COLOR]Warning: preg_replace() [function.preg-replace]: Unknown modifier '*' in x.php on line Y

          [COLOR=black]PHP 5.3[/COLOR]

          [COLOR=DarkOliveGreen]---------
          Hier habe ich eine perfekte Lösung gefunden:
          http://www.webdesign-informatik.de/p...hen-php-regex/[/COLOR]

          [/COLOR]
          Zuletzt geändert von scripthostingnet; 08.07.2010, 15:04. Grund: Ergänzung

          Kommentar


          • #6
            Zitat von scripthostingnet Beitrag anzeigen
            Wenn man dieses Pattern in ein preg_replace einsetzt, erscheint folgende Fehlermeldung:
            Da stehen noch Backslashes drin, die die PHP-Tags des Forums leider verschlucken:
            Code:
            /(\/\*.*\*\/)/U
            Siehst du aber, wenn du den Originalbeitrag zitierst.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ich benutze diese RegEx um Kommentare zu entfernen:

              PHP-Code:
              $css=preg_replace('~\/\*[^*]*\*+([^/*][^*]*\*+)*\/~m','',$css); # CSS-Kommentare entfernen 
              ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

              Kommentar

              Lädt...
              X