fwrite episode 2

fwrite episode 2 - PHP - Programmation

Marsh Posté le 21-07-2004 à 16:06:12    

voila.. je vous explique ce que je veux faire...
 
je voudrais creer un fichier texte avec fwrite...
simplement je voudrais qu'il soit mis à jour ce fichier texte... avec par exemple un autre bout de texte dans un endroit bien précis...
 
par exemple je creer cela
 
"bonjour le monde"
 
... et maintenant je voudrais rajouter le mot "tout" entre "bonjour" et "le monde" pour faire  
 
"bonjour tout le monde"
 
vous allez me dire un str_replace c'est trop facile !!!!
mais mon probleme est que je veux entre "bonjour" et "le monde" il y ait un repere qui indique où mon texte doit etre rajouté...
 
exemple
 
bonjour (x) le monde
 
... vous comprennez ou pas ????
 
 
j'explique avec autre chose.. un peu de HTML...
 
je veux un fichier HTML qui serait créé comme suit :
 
<html>
  <body>
    <p>
    <!-- marqueur 1 -->
    </p>
  </body>
</html>
 
et je veux que dans ma mise à jour on rajoute "mon texte est ici !!!"
 
et au resultat ça sera :  
 
<html>
  <body>
    <p>
    mon texte est ici !!!
    </p>
  </body>
</html>
 
 
... vous feriez comment ?
 
Merci !


Message édité par freed102 le 21-07-2004 à 16:07:27
Reply

Marsh Posté le 21-07-2004 à 16:06:12   

Reply

Marsh Posté le 21-07-2004 à 17:17:50    

recherche sur le forum :
 
http://forum.hardware.fr/forum2.ph [...] subcat=393


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 22-07-2004 à 17:13:49    


 
Merci ça va bcp m'aider...
 
encore une question...
 
imaginez que j'ai donc ça
 
<!-- marqueur 1 -->
mon texte ici !!!!
<!-- fin marqueur 1 -->
 
est ce que cette fonction pourrait faire un "rechercher/remplacer" de ce qui se trouve entre deux marqueurs ? En francais mon script dirait :
"remplace tout ce qui est entre  
<!-- marqueur 1 -->  
et  
<!-- fin marqueur 1 -->  
par
"mon nouveau texte"
 
???
 
Is it possible ???
 
Merci
 
 
 
 

Reply

Marsh Posté le 22-07-2004 à 17:20:32    

tout est possible, il faut aller voir la fonction substr()


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 23-07-2004 à 12:10:01    

T509 a écrit :

tout est possible, il faut aller voir la fonction substr()


 
Bon j'ai retrafiqué la fonction de ton post... ça marche :

Code :
  1. function InsereCode($recherche, $remplacement, $fichier)
  2. {
  3. if (is_file($fichier))
  4. {
  5.  //ouverture (lecture)
  6.  $fopened = fopen($fichier, "r" );
  7.  //lecture
  8.  $read=fread($fopened,filesize($fichier));
  9.  //fermeture
  10.  fclose($fopened);
  11.  //recherche et remplace
  12.  $text = str_replace($recherche, $remplacement, $read);
  13.  //ouverture (ecriture)
  14.  $fopened= fopen($fichier, "w" );
  15.  //ecriture
  16.  fwrite($fopened, $text);
  17.  //fermeture
  18.  fclose($fopened);
  19. }
  20. else
  21. {
  22. $fielderreur="Le fichier $fichier n'existe pas <br />";
  23. }
  24. return $text;
  25. }


 
simplement je suis toujours pas dans l'esprit que je voulais... faut que j'y travailles encore !


Message édité par freed102 le 23-07-2004 à 12:10:44
Reply

Marsh Posté le 23-07-2004 à 14:49:05    

T509 a écrit :

tout est possible, il faut aller voir la fonction substr()


 
bon là je lutte un peu...
 
strstr ou strchr me retourne la chaine après l'occurence..
 
genre
 

Code :
  1. $texte="bonjour tout le monde";
  2. echo strstr ($texte, "bonjour" );
  3. //me retourne "tout le monde"


 
... ya pas deja une fonction qui donne la chaine entre deux occurences ????

Reply

Marsh Posté le 23-07-2004 à 14:52:01    

tu peux utiliser une expression régulière
pour ca utilise la fonction "preg_replace"
 

Reply

Marsh Posté le 23-07-2004 à 15:18:49    

mathix a écrit :

tu peux utiliser une expression régulière
pour ca utilise la fonction "preg_replace"


 
Yessssssss !!! ça marche !!!!
 

Code :
  1. function InsereCode2($recherchedebut, $recherchefin, $remplacement, $fichier)
  2. {
  3. if (is_file($fichier))
  4. {
  5.  // ouverture (lecture)
  6.  $fopened = fopen($fichier, "r" );
  7.  // lecture
  8.  $read=fread($fopened,filesize($fichier));
  9.  // fermeture
  10.  fclose($fopened);
  11.  // recherche et remplace
  12.  $pattern="/$recherchedebut.*$recherchefin/s";
  13.  $text = preg_replace($pattern, $remplacement, $read);
  14.  // ouverture (ecritureà
  15.  $fopened= fopen($fichier, "w" );
  16.  // ecriture
  17.  fwrite($fopened, $text);
  18.  // fermeture
  19.  fclose($fopened);
  20. }
  21. else
  22. {
  23. $fielderreur="Le fichier $fichier n'existe pas <br />";
  24. }
  25. return $text;
  26. }


 
werk werk werk !!!!  :bounce:  :bounce:  :bounce:

Reply

Marsh Posté le 23-07-2004 à 15:19:37    

$motif = "<!-- marqueur 1 -->(.*)<!-- fin marqueur 1 -->";
eregi($motif, $chaine_a_traiter, $resultat);
 
dans $resultat, tu as les morceaux de chaine qui correspondent
(c'est un tableau)
ensuite, tu utilises substr() pour faire les mises à jour


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 23-07-2004 à 15:21:23    

T509 a écrit :

$motif = "<!-- marqueur 1 -->(.*)<!-- fin marqueur 1 -->";
eregi($motif, $chaine_a_traiter, $resultat);
 
dans $resultat, tu as les morceaux de chaine qui correspondent
(c'est un tableau)
ensuite, tu utilises substr() pour faire les mises à jour


 
on dirait que avec ça ça marche bien :
 
  $pattern="/$recherchedebut.*$recherchefin/s";  
  $text = preg_replace($pattern, $remplacement, $read);

Reply

Marsh Posté le 23-07-2004 à 15:21:23   

Reply

Marsh Posté le 23-07-2004 à 15:53:59    

oui c'est pareil


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 23-07-2004 à 16:02:58    

T509 a écrit :

oui c'est pareil


 
par contre je comprends pas bien la syntaxe de ça :
 
$pattern="/$recherchedebut.*$recherchefin/s";   :??:  

Reply

Marsh Posté le 23-07-2004 à 16:17:21    

regarde ici pour des explications sur les expressions régulières :
http://cyberzoide.developpez.com/php4/regex/

Reply

Sujets relatifs:

Leave a Replay

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