PHP : transformer un lien en img (ereg/preg_replace)

Mitirapa
WRInaute passionné
WRInaute passionné
 
Messages: 1657
Inscription: 10 Juil 2002

PHP : transformer un lien en img (ereg/preg_replace)

Message le Lun Aoû 30, 2010 19:58

salut !

j'ai rarement fait de preg replace donc j'tourne en rond j'crois là,

le but est de modifier un lien (a href) qui contient une image en image qui s'affiche(img src)

j'ai fait
Code: Tout sélectionner
$textee = preg_replace('#<a href="([a-z0-9._/-]+)(.png|.jpg|.jpeg|.gif)" target="_blank">([a-z0-9._/-]+)</a>#i', '<img src="http://$1$2"/>', $textee);

mais ca ne reconnait pas mon lien img, ya une erreur ou une autre facon ?

j'arrive a changer deja toutes url (http) en lien (a href) avec
Code: Tout sélectionner
$textee = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $textee);

et donc ca serait pour faire la suite sur le cas des img...

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: PHP : transformer un lien en img (ereg/preg_replace)

Message le Mar Aoû 31, 2010 1:22

Ce serait nettement plus simple si tu nous donnais un exemple avant/après...

Jacques.


Eric 2A
WRInaute discret
WRInaute discret
 
Messages: 194
Inscription: 26 Fév 2006

Re: PHP : transformer un lien en img (ereg/preg_replace)

Message le Mar Aoû 31, 2010 2:13

Salut,

Essaie ceci
Code: Tout sélectionner
$textee = preg_replace('%<a href="((?:[a-z0-9._/-]+)\.(?:png|jpe?g|.gif))" target="_blank">([a-z0-9._/-]+)</a>%i', '<img src="$1" />', $textee);

?

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: PHP : transformer un lien en img (ereg/preg_replace)

Message le Mar Aoû 31, 2010 2:39

Il manque au moins ":" et probablement beaucoup d'autres caractères, genre ?, &, %, +, etc.

Jacques.

Mitirapa
WRInaute passionné
WRInaute passionné
 
Messages: 1657
Inscription: 10 Juil 2002

Re: PHP : transformer un lien en img (ereg/preg_replace)

Message le Mar Aoû 31, 2010 11:49

Eric 2A> ca ne change rien malheureusement, aucun effet

jcaron > a la base par exemple, j'envoi ca :
http://www.amazing-animations.com/animations/smileys14.gif dans un textarea ($textee)

apres mon premier ereg_replace
Code: Tout sélectionner
$textee = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $textee);

remplace tous les url par des liens cliquables, donc j'arrive à :
Code: Tout sélectionner
<a href="http://www.amazing-animations.com/animations/smileys14.gif" target="_blank">http://www.amazing-animations.com/animations/smileys14.gif</a>


et apres faudrait que j'arrive à modifier les liens cliquables qui sont des images jpg, gif, png par
Code: Tout sélectionner
<img src="http://www.amazing-animations.com/animations/smileys14.gif">


et c'est cette derniere etape que je n'arrive pas

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: PHP : transformer un lien en img (ereg/preg_replace)

Message le Mar Aoû 31, 2010 12:03

Rajoute (au moins) ":" dans la liste des caractères autorisés et ça devrait passer je pense.

Jacques.


Eric 2A
WRInaute discret
WRInaute discret
 
Messages: 194
Inscription: 26 Fév 2006

Re: PHP : transformer un lien en img (ereg/preg_replace)

Message le Mar Aoû 31, 2010 13:59

Re,
jcaron a écrit:Il manque au moins ":" et probablement beaucoup d'autres caractères, genre ?, &, %, +, etc.

Oups !
Code: Tout sélectionner
$textee = preg_replace('!<a href="(https?://[-a-z0-9+&@#/%?=_()|,;.]+\.(?:png|jpe?g|gif))" target="_blank">(.+?)</a>!si', '<img src="$1" />', $textee);


cedric_g
WRInaute accro
WRInaute accro
 
Messages: 3552
Inscription: 18 Jan 2006

Re: PHP : transformer un lien en img (ereg/preg_replace)

Message le Mar Aoû 31, 2010 16:20

Juste pour la forme, termines par <img src="<ici le lien>" alt="" />

(code conforme W3C... Ne coûte rien de le faire :) )

Mitirapa
WRInaute passionné
WRInaute passionné
 
Messages: 1657
Inscription: 10 Juil 2002

Re: PHP : transformer un lien en img (ereg/preg_replace)

Message le Mar Aoû 31, 2010 19:29

ah cool merci ca marche bien maintenant ! super !

J'vais me renseigner un peu plus sur ces fonctions j'crois, ca peut tjrs servir.

merci en tt cas sympa !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

  • Transformer des simples citations de votre site en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
  • Test de redirection
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Calcul du taux de liens profonds
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités