Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/12/2007, 12h41   #1
Invité régulier
 
Inscription : septembre 2005
Messages : 28
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 28
Points : 9
Points : 9
Par défaut Rendre une image clicable.

Bonjour,

Je vous explique ce que je souhaite faire:
- un utilisateur de mon site peut écrire un message
- pour cela il dispose d'un champ de type "textarea" et de quelques bouton de mise en forme

- l'utilisateur peut par exemple inserer une image: il clique sur le bouton correspondant, entre l'url de l'image à ajouter et le code apparait dans la textarea.

- Seulement, avant d'inserer le message dans base, je souhaite modifier l'image afin que celle-ci soit clicable.

Voici mon code :
Code :
$contenu = preg_replace('`<img src=(.+) alt=(.+) width=(.+) height=(.+) />`', '<a href=$1 class=\"lienimage\" title=$2><img src=$1 alt=$2 width=$3 height=$4 /></a>', $contenu);
Cela fonctionne très bien sauf si l'ulisateur insere plusieurs images.
Dans ce cas, il n'y a qu'un seul lien qui est généré et il encadre toutes les images.

Voyez-vous d'ou vient le problème ?

D'avance merci pour votre aide.
Bonne journée.
TheBAT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 13h00   #2
Futur Membre du Club
 
Inscription : juin 2004
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 38
Points : 18
Points : 18
Bonjour

J'aurai fait ainsi moi :

Code :
$contenu = preg_replace('`<img src=\'([^\']+)\' alt=\'([^\']+)\' width=\'([^\']+)\' height=\'([^\']+)\' />`', '<a href=\'$1\' class=\'lienimage\' title=\'$2\'><img src=\'$1\' alt=\'$2\' width=\'$3\' height=\'$4\' /></a>', $contenu);
Tes attributs href, width et height sont à mettre entre ' '

Dis moi ce que ca donne
Marshall_Mathers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 14h37   #3
Invité régulier
 
Inscription : septembre 2005
Messages : 28
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 28
Points : 9
Points : 9
Merci de ta réponse. Cela n'a pas fonctionné tout de suite mais en adaptant un peu, c'est bon

Merci.

Code :
$contenu = preg_replace('`<img src=\"([^\"]+)\" alt=\"([^\"]*)\" width=\"([^\"]*)\" height=\"([^\"]*)\" />`', '<a href=\"$1\" class="lienimage\" title=\"$2\"><img src=\"$1\" alt=\"$2\" width=\"$3\" height=\"$4\" /></a>', $contenu);
ps: ce n'était pas mon intention de me passer des guillements pour encadrer mes valeurs
TheBAT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 20h34   #4
Futur Membre du Club
 
Inscription : juin 2004
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 38
Points : 18
Points : 18
Ya pas de quoi

PS : Cela devrait fonctionner, vu que tu utilise des " et que ton motif est entre ', les anti slash \ sont inutiles

Code :
1
2
3
4
$contenu = preg_replace(
'#<img src="([^"]+)" alt="([^"]+)" width="([^"]+)" height="([^"]+)" />#',
'<a href="$1" class="lienimage" title="$2"><img src="$1" alt="$2" width="$3" height="$4" /></a>',
$contenu);
Marshall_Mathers est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h05.


 
 
 
 
Partenaires

Hébergement Web