<?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...