Page 1 sur 1

Problème d'exécution d'une function PHP dans une preg_replac

Posté : 23 mars 2008, 23:30
par lolo888
Bonsoir, je n'arrive pas à faire prendre en compte par exemple une function rawurldecode à l'intérieur d'une preg_replace. Voici mon exemple :
<?php 
$file = <<<EOF
<a href="http://www.bidon.com/url?q=http%3A%2F%2Fwww.site-web-bidon.fr%2Fpaca%2Fprogramme.php&sa=D&sntz=1&usg=AFQjCNGyQ27TUTY1GzeqdxUQkOSrjroNmA" target="_blank">http://www.site-web-bidon.fr/paca/programme.php</a>
EOF;

$pattern = '@.*http://www.bidon.com/url\?q=([^&]+)&sa=D&sntz=[^"]+.*@';

$file = preg_replace($pattern, rawurldecode('\\1'), $file);
echo $file;
?>
le preg_replace est bon, sauf que rawurldecode ne fonctionne pas :(

merci de votre aide, j'ai tout essayé, je désèspère... :roll: :(

Re: Problème d'exécution d'une function PHP dans une preg_re

Posté : 23 mars 2008, 23:57
par zeus
rawurldecode ne fonctionne pas :(
C'est à dire ?

Il nous faut plus de détail sur ce qui ne fonctionne pas pour que nous puissions t'aider ;)

Re: Problème d'exécution d'une function PHP dans une preg_re

Posté : 24 mars 2008, 00:19
par lolo888
rawurldecode ne fonctionne pas :(
C'est à dire ?

Il nous faut plus de détail sur ce qui ne fonctionne pas pour que nous puissions t'aider ;)
Et bien actuellement mon script renvoye ceci :

Code : Tout sélectionner

http%3A%2F%2Fwww.site-web-bidon.fr%2Fpaca%2Fprogramme.php
Et moi je cherche à avoir ceci :

Code : Tout sélectionner

http://www.site-web-bidon.fr/paca/programme.php
en passant le \\1 dans rawurldecode ou urldecode, et l'exécution de ces derniers n'a aucun effet.

C'est plus clair ?

Edit : je viens de trouver la solution, après des heures de tests infructieux, pour la function preg_replace avec callback (il faut déjà connaître ce terme), pour que ça fonctionne il faut rajouter l'option "e" derrière le délimiteur de fin de motif. :roll:

(ça m'a rendu fou cette histoire) :twisted: :wink: