Remplacer un lien dans un fichier HTML

cs_bibou56 Messages postés 2 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 17 juillet 2002 - 17 juil. 2002 à 10:38
cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004 - 17 juil. 2002 à 21:48
Salut je dois modifier l'url d'un lien dans un fichier html.

Je fais ca :

if(is_writeable($cheminAbsoluPage)){
$fic=fopen($cheminAbsoluPage, "r+");
while(!feof($fic)){
$buf=fgets($fic, 4096);

if(ereg($relatif,$buf)){
$buf=ereg_replace($relatif, "http://".$HTTP_SERVER_VARS['HTTP_HOST']
.dirname($HTTP_SERVER_VARS['PHP_SELF'])
."/"."compteClick.php",$buf);


}
}
fseek($fic, -strlen($buf), SEEK_SET);
fwrite($fic, $buf);
fclose($fic);
}

Le probleme est que cela ne remplace pas le lien. quelqu'un peut m'aider??

merci

3 réponses

cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004
17 juil. 2002 à 11:05
Aë aïe aïe...

Tu peux nous dire à quoi sert ton code ?
Il y a sûrement une solution plus élégante...

Dean
0
cs_bibou56 Messages postés 2 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 17 juillet 2002
17 juil. 2002 à 11:14
Ce code c'est un premier jet donc c'est clair que ce n'est pas terrible. Bon je te le commente :

/* ouvre un fichier HTML (c:/www/index.html) */
if(is_writeable($cheminAbsoluPage)){
$fic=fopen($cheminAbsoluPage, "r+");

/* ca c'est simple */
while(!feof($fic)){
$buf=fgets($fic, 4096);

/* recherche l'url relative et la remplace par l'url absolu vers le fichier compteClick.php */
if(ereg($relatif,$buf)){
$buf=ereg_replace($relatif, "http://".$HTTP_SERVER_VARS['HTTP_HOST']
.dirname($HTTP_SERVER_VARS['PHP_SELF'])
."/"."compteClick.php",$buf);

}

}
/* ca ca sert a rien */
fseek($fic, -strlen($buf), SEEK_SET);

/* ecrit dans le fichier le lien */
fwrite($fic, $buf);
fclose($fic);
}

/*fin*/

Le fichier c:www/index.html a ete modifie mais le lien a ete rajoute et non remplacé.
voila
0
cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004
17 juil. 2002 à 21:48
J'ai toujours pas compris l'utilité de ton truc mais j'ai peut-être une solution alternative :

- tu récupères le contenu de ton fichier dans un fichier, ce qui se fait en une ligne de code :

$file_contents = join("", file("fichier.html"));

Ensuite tu effectues le remplacement (1 autre ligne).

Et enfin tu réécris tout dans ton fichier en le vidant au préalable.

$fp = fopen("fichier.html", "w");
fputs($fp, $variable);
fclose($fp);

Et voilà ! Ça aura quand même fait 5 lignes de code...

Dean
0
Rejoignez-nous