A voir également:
- [php] Le char avant une regexp...
- Easy php - Télécharger - Divers Web & Internet
- Copains d'avant qui a visité mon profil - Forum Facebook
- Dans la présentation à télécharger, sarah avait encadré directement le titre de certaines diapositives avant d’automatiser cette mise en forme pour tout le document. sur quelles diapositives avait-elle encadré directement le titre ? ✓ - Forum Bureautique
- Veuillez patienter quelques minutes avant de réessayer instagram ✓ - Forum Instagram
- Avant browser - Télécharger - Navigateurs
6 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
14 août 2007 à 17:54
14 août 2007 à 17:54
C'est quoi le pattern de départ?
Pour l'instant, je fais un :
ereg_replace("(http://)((:punct:|:alnum:)*)", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $data);
Le but est apparent : placer automatiquement les url par des liens. L'ennui, c'est qu'il m'arrive d'utiliser des url pour afficher des images distantes (<img src="http://trucbidule") et que du coup, le lien devient indésirable.
ereg_replace("(http://)((:punct:|:alnum:)*)", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $data);
Le but est apparent : placer automatiquement les url par des liens. L'ennui, c'est qu'il m'arrive d'utiliser des url pour afficher des images distantes (<img src="http://trucbidule") et que du coup, le lien devient indésirable.
Salut,
Il suffit d'utiliser une assertion arrière pour détecter si l'url est précédée d'un guillemet.
Il suffit d'utiliser une assertion arrière pour détecter si l'url est précédée d'un guillemet.
$chaine = preg_replace('#(?<!")http://(?:www\.)[a-z0-9_%/\?\-+&;]{3,}#', '<a href="$0">$0</a>', $chaine);
Merci beaucoup !
Mais par contre, avec le modèle que j'ai actuellement, comment puis-je m'assurer que la chaîne s'arrête pile avant un caractère spécifié (comme un autre quote, par exemple)...
Mais par contre, avec le modèle que j'ai actuellement, comment puis-je m'assurer que la chaîne s'arrête pile avant un caractère spécifié (comme un autre quote, par exemple)...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je n'ai pas bien compris ce que tu veux faire.
Sinon, au lieu d'utiliser une assertion, on peut aussi regarder si l'url est entourée d'espaces blancs.
Sinon, au lieu d'utiliser une assertion, on peut aussi regarder si l'url est entourée d'espaces blancs.
$chaine = preg_replace('#(\s|^)(http://(?:www\.)?[a-z0-9_%/.?\-+&;]{3,})(\s|$)#U', '$1<a href="$2">$2</a>$3', $chaine);