IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Enlever commentaire - complexe


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Points : 74
    Points
    74
    Par défaut Enlever commentaire - complexe
    Bonjour, je cherche a faire une regex qui me permet de virer les commentaires de type "//" mais qui reconnait en meme temps que ce ne soit pas dans une chaine de caractere.

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = "ma chaine // a garder "; //commentaire
    Voila je voudrais que sa me vire que la seconde partis vous voyez le probleme.
    Merci

    PS: imaginez de gros fichier la c'est juste un exemple

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 897
    Points : 6 661
    Points
    6 661
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
    $string = <<<'LOD'
    
     // commentaire /* */
     /* commentaire 1 *//* //commentaire 2 */
    $var = "chaîne à garder"; // chaîne double-quote
    $var = 'chaîne à garder'; // chaîne simple-quote
    
    $var = "chaîne // à garder"; // chaîne double-quote avec 2 slash
    // commentaire contenant "des double-quotes" et 'des simples-quotes'
    
    $var = "chaîne de l'espoir"; // chaîne double-quote contenant un simple quote
    $var = "chaîne avec \"citation\""; // chaîne double-quote contenant
    // des double-quotes échappés
    
    $var = "chaîne sur 2 // deux 
    lignes"; // ce qui ne change pas grand chose
    
    $animal = 'la fouine'; $temp = 230;
    
    $var = <<<syntaxe_Heredoc
    badigeonner $animal de moutarde puis l'enfourner à $temp°C 
    pour 40min en l'arrosant
    // toutes les 7 minutes avec du bouillon de poule.
    syntaxe_Heredoc;
    
    $var = <<<'syntaxe_Nowdoc'
    retourner à mi-cuisson // à 20-25 minutes
    puis remettre de la moutarde sur les parties "dénudées"
    syntaxe_Nowdoc;
    
    $var = <<<"Heredoc_double_quote"
    sortir le plat du four, et verser le reste de bouillon
    en grattant pour décoller
    les sucs // au besoin, épaissir à la farine
    Heredoc_double_quote;
    
    $var = '$var = <<<heredoc
    dans une chaîne // toto
    heredoc;
    ';
    
    $var = <<<"1es_5yn1ax3-fÔsSe5'
     perdront leurs "commentaires",
     ce qui peut être préjudiciable. // syntaxe fausse
    1es_5yn1ax3-fÔsSe5;
    LOD;
     
    $pattern = '`((?:= *<<<((?:\'|")?)([a-zA-Z]\w*)\2\n.*\n\3;\n)|(?:(?<!\\\)(\'|").*(?<!\\\)\4)|(?:/\*.*\*/))|( *//.*)(?=\n|$)`Us';
     
    $result = preg_replace( $pattern, '$1', $string); ?>
    <table><tr>
        <td><pre><?php echo htmlspecialchars( $string ); ?></pre></td>
        <td><pre><?php echo htmlspecialchars( $result ); ?></pre></td>
        </tr></table>
    À appliquer d'urgence sur des millions de fichiers de plusieurs gigaoctets de données sensibles sans faire de copie au préalable.

Discussions similaires

  1. Enlever des sprites à un groupe et formes complexes
    Par Bénarès77 dans le forum Programmation multimédia/Jeux
    Réponses: 5
    Dernier message: 14/10/2011, 22h58
  2. Expression reguliere pour enlever les commentaires
    Par fafoula dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/07/2008, 10h00
  3. [RegEx] enlever les commentaire html
    Par popogendarme dans le forum Langage
    Réponses: 5
    Dernier message: 21/03/2007, 22h11
  4. [VB6] mettre en commentaires...
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2004, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo