[RESOLU] Remplacement d'une chaine de caractères dans un fichier html

Remplacement d'une chaine de caractères dans un fichier html [RESOLU] - PHP - Programmation

Marsh Posté le 10-08-2010 à 20:54:36    

Bonjour,
 
J'ai une petite question sur la modification de fichiers en php (chose que je n'ai encore jamais fait).  
 
J'ai des fichiers html (modèles emails) qui contiennent des balises du style <p style="color:#ababab;">Texte</p>
Ca peut être des balises <p> <span> ...
 
J'aimerai pouvoir remplacer #ababab par #333333 dans tout le document et l'enregistrer.
 
Est-ce que vous auriez une piste pour m'aiguiller ?
 
 
Merci


Message édité par aspirateur le 11-08-2010 à 13:20:20
Reply

Marsh Posté le 10-08-2010 à 20:54:36   

Reply

Marsh Posté le 10-08-2010 à 22:19:23    

recherche - remplacer ?
 
ils sont ou a la base les fichiers ?

Reply

Marsh Posté le 11-08-2010 à 10:04:53    

Les fichiers sont dans un répertoire (mails) sur un serveur en ligne.
 
En cherchant un peu j'ai trouvé ce script :
 

Code :
  1. <?php
  2.  
  3. $fichier="test.php";
  4.  
  5. //ouverture en lecture et modification
  6. $text=fopen($fichier,'r') or die("Fichier manquant" );
  7. $contenu=file_get_contents($fichier);
  8. $contenuMod=str_replace('salut', 'copain', $contenu);
  9. fclose($text);
  10.  
  11. //ouverture en écriture
  12. $text2=fopen($fichier,'w+') or die("Fichier manquant" );
  13. fwrite($text2,$contenuMod);
  14. fclose($text2);
  15.  
  16. ?>


 
Ca ressemble à ce que je veux faire non ?

Reply

Marsh Posté le 11-08-2010 à 12:04:36    

oui enfin y a plus simple

Code :
  1. <?php
  2. // définis ta fonction de transformation ici, avec tes str _replace ou preg_replace, etc.
  3. function transform($string)
  4. {
  5.    return ...
  6. }
  7.  
  8. $fp = fopen('fichier.truc', 'w+');
  9. fwrite($fp, transform(fread($fp, filesize('fichier.truc'))));
  10. fclose($fp);
  11. ?>

Message cité 1 fois
Message édité par Profil supprimé le 11-08-2010 à 12:04:47
Reply

Marsh Posté le 11-08-2010 à 12:24:44    

Super, je vais tester ca tout de suite ;)

Reply

Marsh Posté le 11-08-2010 à 13:07:43    

Bonjour,
 
Encore plus simple :
<?php
  $fichier = 'test.php';
 
  $contenu = str_replace('#ababab', '#333333', file_get_contents($fichier));
  file_put_contents($fichier, $contenu);
?>

Reply

Marsh Posté le 11-08-2010 à 13:15:53    


 
En fait ca ne fonctionne pas à cause de ton  fopen('fichier.truc', 'w+'); qui defini la taille du fichier à 0 alors que fread ne peut fonctionner avec une taille égale à zéro
 

jeca a écrit :

Bonjour,
 
Encore plus simple :
<?php
  $fichier = 'test.php';
 
  $contenu = str_replace('#ababab', '#333333', file_get_contents($fichier));
  file_put_contents($fichier, $contenu);
?>


 
En effet c'est beaucoup plus simple et ca marche. Merci beaucoup

Reply

Marsh Posté le 11-08-2010 à 17:26:26    

a excuse
bah
tu fais $size = filesize(machintruc);
et au moins tu peux définir une série d'opérations
enfin ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed