Changer URL à la volé avec preg_replace
Bonjour,
Après avoir chercher et tester plusieurs expressions régulières je me permet de m'en remettre à vous.
Je cherche à faire un script qui modifie à la volé tous les liens.
Mon expression fonctionne lorsqu'il s'agit de texte dans le lien mais cela bug quand il s'agit d'une image.
Exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11
| function format_texte_externe($chaine_caractere)
{
//remplacement des liens
$chaine_caractere=preg_replace('`(\<a\s+href="(.*?)"([^>]*>)(.*?)</a>)`i', '<a href="$2" target="_blank" rel="nofollow" title="$4" class="lien_extrait_rss">$4</a>', $chaine_caractere);
return $chaine_caractere;
}
$test = 'BLA BLA BLA <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?id=291608629&s=143442&v0=9990"><img src="http://a1.phobos.apple.com/us/r1000/030/Music/46/68/01/mzi.ceykligy.100x100-75.jpg" border="0"></a> BLA BLA BLA';
echo format_texte_externe($test); |
Je suppose que c'est à cause des double quotes que l'on trouve dans le code de l'image mais je n'arrive pas à la gérer dans l'expression régulière.
Merci d'avance pour votre aide