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 :

remplacer les class [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut remplacer les class
    Salut,
    Oui je suis à fond dessus en ce moment...
    Voila je souhaite remplacer les classes Css par autre chose.
    Par exemple remplace .ma_class { par .ca_marche {

    Voila ce que j'ai fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $style_content = preg_replace("`.(.+)[[:space:]]*{`", "<font style='color:green'>$1</font>", $style_content);
    Tout:
    - tout ce qui commence par un point
    - ce qu'on veut ensuite
    - un nombre d'epsaces indeterminé
    - et l'accolade pour la fin.

    Mais ce code ne fonctionne pas du tout (rien n'est fait)
    Comment faire?
    Merci

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("/\.(.+)[[:space:]]*\{/", "<font style='color:green'>$1</font>", $style_content);
    pense bien que . et { sont des trucs utilisés et donc qu'il faut les échapper avec \ oki ??

    essaie ca ...

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Merci mais il ne fonctionne pas non plus, il ne fait rien.

  4. #4
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("/\.(.*)\{/", "<font style='color:green'>$1</font>", $style_content);
    et ca ??

    et c'est pour quoi que tu mets du font :

  5. #5
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Les deux résultats donnent en fait le résultat équivalent mais ne font rien Je crois que ça vient des caractères de fin et de début, ici / ?
    C'est pourquoi que je mets quoi?

  6. #6
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    j'ai pas compris ce que tu veux faire en définitive.

    donne nous ton code que tu veux changer et en quoi tu veux le changer.

  7. #7
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Re: [REGEXP] remplacer les class
    Citation Envoyé par Anduriel
    Par exemple remplace .ma_class { par .ca_marche {
    J'ai réussi après pleins d'essais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("#\.{1}(.+)([[:space:]]*\})#Us", "<font style='color:green'>$1</font>$2", $style_content);
    De tête c'est à peu près ça
    Merci de ton soutient
    A+

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Faites gaffe avec les guillemets, en particulier quand vous échappez des caractères d'une string...

    @Anduriel : Je pense que tu peux virer le {1}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('#\.(.+)([[:space:]]*{)#Us', "<font style='color:green'>$1</font>$2", $style_content);

  9. #9
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ok, mais quelle est la différence entre les simpes guillemets et doubles? Je suppose que c'est comme avec les variables mais qu'est ce que ça change?

  10. #10
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Citation Envoyé par Yogui
    Faites gaffe avec les guillemets, en particulier quand vous échappez des caractères d'une string...
    oui j'ai pas bien pigé le message que tu voulais faire passer.

    tu peux nous expliquer stp Yogui ??

  11. #11
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    je comprends pas trop. Tu dis
    Par exemple remplace .ma_class { par .ca_marche {
    Et dans ton code tu remplace par <font color:green>

  12. #12
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Citation Envoyé par Mr N.
    je comprends pas trop. Tu dis
    Par exemple remplace .ma_class { par .ca_marche {
    Et dans ton code tu remplace par <font color:green>
    C'est exactement ce que je lui ai demandé, mais il m'avait pas compris.

  13. #13
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ah désolé oui c'est bête mais en fait je voulais mettre .test { en vert C'était juste pour vous dire que je voulais récupérer test.

  14. #14
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Donc tu travaille bien dans un fichier css... je commençais à douter.

    Il y a moultes endroits où une classe peux se trouver dans une feuille de styles :
    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
     
    .<?php
    header('Content-type: text/plain');
     
    $css = <<<END
    .ma_classe{
    }
      .ma_classe {
    }
    .ma_classe:hover {
    }
    .ma_classe div span {
    }
    .ma_classe,
    .mon_autre_classe {
    }
    ...
    ...
    END;
    echo $css . "\n------------------------------------------------------\n";
    $old = 'ma_classe';
    $new = 'ca_marche';
    echo preg_replace('`\.'. preg_quote($old) .'\b`i', '.'.$new, $css);
     
    ?>

  15. #15
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Oula merci mais je n'ai pas compris: tu cherches un point, fini par \b ?
    Que signifie ce preg_quote?

    Merci

  16. #16
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Je ne peux pas te dire mieux : http://php.net/preg_quote
    Les regexp utilisent des caractèrent spéciaux, ils faux les échapper (. ==> \.)
    C'est comme un addslashes ou mysql_real_escape_string, mais pour une expression régulière.

    \.ma_class\b signifie un point suivi de la chaine de caractère "ma_classe" suivi d'un caractère séparateur de mot (espace, virgule, ...)

  17. #17
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ah génial merci
    J'avais demandé ça dans un autre topic qui a coulé dans le forum sans réponse: connais tu un site comprenant des tutoriels sur les caractères de fin de chaine ou particuliers, comme U, s, i, \b...?
    Je connais expreg.com mais il ne parle pas de ça.

    Merci

  18. #18
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    si si expreg parle de ça => http://expreg.com/delimiteur.php

    mes deux seuls sites de références :
    • http://php.net/pcre (reference.pcre.pattern.modifiers + reference.pcre.pattern.syntax)
    • http://expreg.com/

  19. #19
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Merci

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

Discussions similaires

  1. [Taglibs] Utiliser les classes css ?
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 05/05/2007, 01h31
  2. Réponses: 31
    Dernier message: 30/03/2006, 16h57
  3. Les classes ne s'affichent pas
    Par karl3i dans le forum MFC
    Réponses: 8
    Dernier message: 26/01/2004, 14h52
  4. delocaliser les classe
    Par otb82 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 17/11/2003, 08h54
  5. Les classes amies en Delphi
    Par Bruno75 dans le forum Langage
    Réponses: 3
    Dernier message: 02/09/2003, 19h34

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