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 :

Desactivation des references arrieres ? (chaine contenant $1) [RegEx]


Sujet :

Langage PHP

  1. #1
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut Desactivation des references arrieres ? (chaine contenant $1)
    Bonjour,
    J'ai un script qui utilise preg_replace pour remplacer des paramètres par leur valeur
    Le hic c'est que j'ai une chaine de remplacement contenant des $1, $2 ...
    Hors il les interprète comme références arrières et me les shoote

    Je souhaiterais donc qu'il ne les interprete pas, ou que je les remette apres

    J'ai essayé la chose suivantes en vain
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $replacement=preg_replace('/\$3/','$DOLLAR3',$replacement);
     
    $genCode=preg_replace('/<%=[\ ]?'.$sParam.'[\ ]?%>/m',$replacement ,$codeGenere);
     
    $codeGenere=preg_replace('/\$DOLLAR3/','\$3',$codeGenere);
    mais malheureusement il me remplace par $ 3 (espace), si à la place de 3 je mets une lettre la il me met bien $maLettre

    Une idée ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    C'est un peu flou comme question car il manque les chaînes de test qui pourraient aider à cerner le problème.

    Mais en attendant, que donnerait ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $replacement = preg_quote($replacement);
    $genCode=preg_replace('/<%=[\ ]?'.$sParam.'[\ ]?%>/m',$replacement ,$codeGenere);
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par s.n.a.f.u Voir le message
    C'est un peu flou comme question car il manque les chaînes de test qui pourraient aider à cerner le problème.

    Mais en attendant, que donnerait ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $replacement = preg_quote($replacement);
    $genCode=preg_replace('/<%=[\ ]?'.$sParam.'[\ ]?%>/m',$replacement ,$codeGenere);
    Ca donne le meme resultat que ma solution
    pour exemple
    J'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $codeGenere=' ... <%= code %> ...';
    $replacement = ' il y a un $1 et $2';
    $replacement = preg_quote($replacement);
    $genCode=preg_replace('/<%=[\ ]?code[\ ]?%>/m',$replacement ,$codeGenere);
    Avec ce code j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    il y a un $ 1 et $ 2
    Notez l'espace entre le $ et le 1
    il faudrait qu'il touche pas a $1 qu'il le laisse tel quel (ca fait partie du code )
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Je suis désolé, mais je vais sortir une réponse à la con : chez moi ça marche.

    J'ai pris ton code, et j'ai bien $1 et $2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $codeGenere=' ... <%= code %> ...';
    $replacement = ' il y a un $1 et $2';
    $replacement = preg_quote($replacement);
    $genCode=preg_replace('/<%=[\ ]?code[\ ]?%>/m',$replacement ,$codeGenere);
    print $genCode;
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Au passage, je ne pige pas la regex. Ceci suffirait amplement, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('/<%=\s*code\s*%>/',$replacement ,$codeGenere);
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    preg_quote etait bien la solution, j'avais un soucis en plus apres
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Un Regex de chaine contenant des éèàç
    Par doc51 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 15/06/2009, 15h55
  2. Nettoyer une chaine contenant des caractères spéciaux?
    Par adil_vpb dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/05/2007, 15h47
  3. Réponses: 1
    Dernier message: 22/01/2007, 20h33
  4. passer d'une chaine contenant des espaces a un tableau
    Par flyfrog dans le forum Contribuez
    Réponses: 3
    Dernier message: 26/06/2006, 20h12
  5. [Tableaux] Chaine contenant des noms de variables
    Par novices dans le forum Langage
    Réponses: 6
    Dernier message: 06/04/2006, 23h33

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