[résolu] Problème avec preg_replace (le point)

Nouveau WRInaute
Bonjour à tous, et meilleurs vœux pour la nouvelle année.

Voila, j'ai un problème a première vue simple avec une expression régulière que je n'arrive pas a résoudre...

Je souhaiterais changer une partie d'une URL de la manière suivante (exemple):

"voir la photo ici: http://monurl.com/download.php?id=12345 "
en:
"voir la photo ici: http://monurl.com/download/file.php?id=12345 "


J'ai tenté le code suivant (un exemple, l'important est l'expression régulière):

Code:
$texte = "voir la photo ici: http://monurl.com/download.php?id=12345 ";
$texte = preg_replace('#download\.php#', 'download/file.php', $texte;

... mais ça ne marche pas.
Il semble que le problème viens du "point" que pourtant j'échappe avec un anti-slash.

Je veux bien un coup de main la dessus, j'ai essayé plein de truc plus ou moins avouable, je n'ai plus d'idée....
 
WRInaute passionné
t'as oublié de fermer la parenthese sur la seconde ligne, c'est peut-être ca .

et c'est quoi les # ? enleves les ca devrait marcher, d'ailleurs pourquoi utiliser preg_replace , str_replace convient mieux.
 
Nouveau WRInaute
phloam a dit:
t'as oublié de fermer la parenthese sur la seconde ligne, c'est peut-être ca .
une erreur de mon copier/coller, j'ai bien ma parenthèse.

et c'est quoi les # ? enleves les ca devrait marcher, d'ailleurs pourquoi utiliser preg_replace , str_replace convient mieux.

Ce sont les délimiteurs, obligatoires, si je les retire y a plus rien qui marche... on peux remplacer par autre chose, mais le # c'est pas mal.

Je préfère utiliser les PCRE, beaucoup plus rapide car j'ai un assez gros volume à traiter (c'est pour un forum).

Bref ça me dit pas ce qui cloche...
 
Nouveau WRInaute
Arf, ça y est, j'ai trouvé, le point est encodé en html dans la base de donnée...scrogneugneu...

Il fallait donc que je cherche: "download.php" ....

Maintenant ça marche.
 
Discussions similaires
Haut