preg_replace nur Blockkommentare ohne Lizenz oder Fremdautorenhinweise entfernen

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

  • preg_replace nur Blockkommentare ohne Lizenz oder Fremdautorenhinweise entfernen

    Hallo Leute,

    ich habe ein Plugin geschrieben was mir JS und CSS Files minifiziert und zu einem Package zusammenpackt.
    Das klappt alles, nun habe ich aber ein Problem festgestellt das mein preg_replace alle Blockkommentare entfernt, dass ist natürlich blöd wenn man ein JS verwendet was ein Copyrightsvermerk oder ähnliches beinhaltet.

    Meine Frage also, wie muss der preg_replace aussehen das nur Blockkommentare ohne solche Hinweise entfernt werden?

    Hier mein Regex der alle entfernt.

    PHP-Code:
    const BLOCK_COMMENTS "~\/\*.*?\*\/~isU";

    $value preg_replace(self::BLOCK_COMMENTS''$value); 
    Mir fehlt da der Ansatz, ich hatte versucht eine Verneinung in der Form
    PHP-Code:
    "(^copyright|lizenz|license|autor)"
    einzubauen, aber das brachte keinen Erfolg.

    Vielen Dank für eure Hilfe Gruß der Litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

  • #2
    Hallo,

    das würde mit PHP: Assertions - Manual gehen, aber es ist sowieso keine gute Idee, JS-Code kontextunabhängig mit regulären Ausdrücken zu behandeln.

    Es muss nur mal blöderweise passieren, dass in einem Zeilenkommentar, String oder RegExp die Zeichenfolge /* vorkommt und schon löscht der die Hälfte deines Codes. Das sind Einzelfälle, geb ich zu, aber sobald du das in großem Stil einsetzt, kommst du irgendwann an den Punkt, wo irgendwas nicht mehr funktioniert und du dann vergeblich nach dem Fehler suchst.

    Man muss auch nicht gleich einen kompletten Parser bauen, um JS-Code zu minifizieren, aber ein Tokenizer sollte es mindestens sein.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar

    Lädt...
    X