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 :

pour retrouver et remplacer certaines balises [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Points : 849
    Points
    849
    Par défaut pour retrouver et remplacer certaines balises
    Bonjour bonjour,
    J'essaye de développer mon moteur de template, et je me heure à un petit problème avec les regex, même en ayant lu les faq et autres tutoriel, je n'arrive jamais, a les utiliser correctement (ca ne veut vraiemetn pas rentrer).

    donc en fait je souhaite remplacer mes balises:
    <templatexxx /> avec le / facultatif et le nombre d'espace après xxxx pouvant être variable. xxxx etant la valeur d'une variable particulière que l'in nomera $indice

    voici donc comment j'écrirais mon expresion regulière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '<template:' . $indice . ' */?>'
    j'aimerais également savoir si cette expression régulière est juste également:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '<template:([[:alnum:]]+) */?>'
    pour toutes les autres valeurs qui ne sont pas préues par $indice.

    voici un bout de mon code source, où je fais appel à expressinos regulières:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	public function traiter()
    	{
    		$retour = $this->html;
    		foreach( $this->fonctions as $indice => $fonction )
    			$retour = eregi_replace( '<template:' . $indice . ' */?>', $fonction, $retour );
    		$retour = eregi_replace( '<template:([[:alnum:]]+) */?>', '<B>Fonction non reconnue<B><BR />\n', $retour );
    		return $retour;
    	}
    Je vous remercie par avance de l'aide que vous pourrez m'apporter.

  2. #2
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Points : 849
    Points
    849
    Par défaut
    Le problème venait d'ailleurs en fait, je récuperais mal le code html de mon fichier template. Maintenant ça fonctionne bien.
    J'ai totu de même opté pour d'autres motifs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '<template:' . $indice . '[[:space:]]*/?>'
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '<template:[[:alnum:]]*[[:space:]]*/?>'
    Comme toujours, j'espère que ceci pourra être utile à d'autres.

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

Discussions similaires

  1. [WD-2003] Macro pour un rechercher/remplacer de certains espaces.
    Par Shinmey dans le forum VBA Word
    Réponses: 4
    Dernier message: 08/09/2011, 01h18
  2. Réponses: 6
    Dernier message: 29/06/2009, 13h32
  3. remplacer texte dans certaines balises
    Par falco- dans le forum Langage
    Réponses: 4
    Dernier message: 18/10/2007, 14h27
  4. Remplace les balises <marquee></marquee> du HTML Pour Lotus Notes
    Par Stéphane Maillard dans le forum Contribuez
    Réponses: 0
    Dernier message: 10/08/2007, 03h09
  5. [RegEx] expression régulière pour remplacer des balises
    Par oceanbigone dans le forum Langage
    Réponses: 5
    Dernier message: 29/05/2007, 18h11

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