Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/06/2007, 11h41   #1
Invité de passage
 
Inscription : juin 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 9
Points : 3
Points : 3
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 :
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?
freedev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 13h47   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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 :
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.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 14h44   #3
Invité de passage
 
Inscription : juin 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 9
Points : 3
Points : 3
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 '~' ?
freedev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 14h55   #4
Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 61
Points : 61
Dans le chapitre I - B. Problématique lorsque l'auteur dit :

Citation:
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
Christophe_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 15h26   #5
Invité de passage
 
Inscription : juin 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 9
Points : 3
Points : 3
Merci, je vais regarder de plus près.
freedev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h50.


 
 
 
 
Partenaires

Hébergement Web