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 :

Affichage des balises pour preg_replace [RegEx]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Affichage des balises pour preg_replace
    Bonjour,
    Je sais que c'est un problème bête mais je n'ai pas trouvé la solution.
    Je créé un fichier RTF et je remplace les balises <Nom> <Prenom> par des information dans ma base de donnée, tout marche très bien sauf que dans mon fichier RTF créé, les code des balises restent.

    voici mon code:
    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
     
    $requete = "select eleve_nom,eleve_prenom FROM televe ";
     
    	$result = mysql_query($requete);
    	$num_results = mysql_num_rows($result);
    	for ($i = 0; $i < $num_results; $i++)
    	{
     
    	$row = mysql_fetch_array($result);
    //récupération des informations
    	touch("eleve".$i.".rtf");
    //création du RTF
    		if($handle=fopen($fichier,'rb')) 
    		{
    			$content=fread($handle,filesize($fichier));
    			fclose($handle);
    			if($handle=fopen('eleve'.$i.'.rtf','wb'))
    			{
    			$patterns[0] = '<Nom>';
    			$patterns[1] = '<Prenom>';
    			$replacements[0] = $row[0];
    			$replacements[1] = $row[1];
    			$text=preg_replace($patterns, $replacements, $content);
    //changement des chaines
    			fwrite($handle,$text);
    //écriture sur le nouveau RTF
    			fclose($handle);
    			}
    			else echo 'écriture en échec-';
    		}
    		else echo 'ouverture en échec-';
     
     
     
    echo '<hr><a href="'.$serveur.'eleve'.$i.'.rtf">télécharger</a> votre fichier';
    	}
    et donc ca m'affiche <dupont> <marc> dans mon RTF.
    Quelqu'un peut m'aider svp?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    C'est normal, vous n'avez pas spécifié de séparateurs donc les caractères < et > sont utilisés comme tels. Vous devriez corriger par exemple en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $patterns[0] = '~<Nom>~';
    $patterns[1] = '~<Prenom>~';
    tout simplement. Le délimiteur sert uniquement à marquer le début et la fin de l'expression régulière. Il ne faut pas oublier qu'à la fin de celle-ci on peut notamment y faire figurer des options.

    Pour plus d'informations sur les expressions régulières : Initiation aux expressions régulières.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci pour la correction , ca fonctionne.
    Par contre c'est dans quel chapitre du tutoriel que l'on parle de caractères spéciaux comme le '~' ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Dans le chapitre I - B. Problématique lorsque l'auteur dit :

    Les PCRE sont composées (le code couleur sera repris tout au long de l'article) :
    • De délimiteurs : //, ##, [], <>, etc. ;
    • Du masque à proprement parler, situé entre les délimiteurs ;
    • De modificateurs, situés après le délimiteur de fin : U, s, i, m, etc.
    C'est lorsqu'il parle des délimiteurs

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci, je vais regarder de plus près.

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

Discussions similaires

  1. affichage des balises asp
    Par Hanng dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/04/2007, 10h50
  2. [XSL~FO] affichage des balises <strong>
    Par davinout dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 09/02/2007, 15h55
  3. Réponses: 9
    Dernier message: 31/01/2007, 15h04
  4. Des balises pour limiter mon texte
    Par malhivertman1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/01/2007, 12h13
  5. Réponses: 8
    Dernier message: 28/03/2006, 16h52

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