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 16/01/2008, 11h26   #1
Membre habitué
 
Avatar de mamiberkof
 
Inscription : avril 2005
Messages : 286
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Maroc

Informations forums :
Inscription : avril 2005
Messages : 286
Points : 126
Points : 126
Envoyer un message via MSN à mamiberkof
Par défaut remplacer sur un fichier une chaine précise ?

Bonjour,

Je veux remplacer certains chaines de caracetres dans un fichier html , par une chaine de carectere conctané avec un compteur .

je m'explique:
J'ai un fichier import.html qui contient du code HTML, au niveau de ce code j'ai plusieurs(600 tr)
Code :
<tr> CHAINE </tr><tr> CHAINE </tr><tr> CHAINE </tr>....
, je veux lire le fichier html et l'ecrire , en modifiant pour
Code :
<tr> CHAINE1 </tr><tr> CHAINE2 </tr><tr> CHAINE3 </tr><tr> CHAINE4 </tr>....<tr> CHAINE300 </tr>
J'ai fais un script php comme cela ,
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php 
 
 
$t_theFile = 'import.htm';
$f = fopen($t_theFile, 'r');
$content = fread($f, filesize($t_theFile));
 
for ($i=1;$i<=300;$i++)
 
	if(preg_match('`CHAINE`',$content))
		$content=str_replace('CHAINE', "CHAINE".$i, $content) ;
 
 
$fp=fopen("import.htm" ,"w") ;
fwrite($fp, $content);
fclose($fp)
 
 
?>
mais ça marche pas , il me donne pas le résultat que je veux .


Merci pour votre aide
A+
__________________
¤-------------------------------------------------------------------
|لا تبكي يا بُـنية، فإن الله مانع أباك...
| Trd :"Ne pleure pas ma petite fille, Dieu protége ton père" Le prophet Mohammed.
| L'effet developpez.com : ->geek
| It is man's ability to remember that sets us apart. We are the only species concerned with the past. Our memories give us voice. They bear witness to history so that others |might learn. So they might celebrate our triumphs and be warned of our failures.
¤-------------------------------------------------------------------
mamiberkof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 14h43   #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
Je pense qu'il serait plus simple d'utiliser une fonction de rappel donc de compter sur la fonction preg_replace_callback pour effectuer le remplacement, ce qui pourrait vous donner :
Code :
1
2
3
4
5
6
7
8
$t_theFile = 'import.htm';
 
function my_rep_cb($m) {
    static $i = 1;
    return $m[0] . $i++;
}
 
file_put_contents($t_theFile, preg_replace_callback('~\bCHAINE\b~', 'my_rep_cb', file_get_contents($t_theFile)));
(non testé)

L'expression régulière pouvant être plus spécialisée.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h18.


 
 
 
 
Partenaires

Hébergement Web