|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() |
Bonjour
J'ai essayé de faire une regex pour faire une url cliquable à partir d'url écrites telles quelles dans un champ texte (comme dans les forums en fait) Code :
$texte = $texte = preg_replace('#([^src=\"]|[^url\=])http://[a-z0-9._/-]+\.[a-z]+/([a-z0-9._/-])*(\?[a-z0-9._/-]+\=[a-z0-9._/-]+)#i', '<a href="$0">$0</a>', $texte); Code :
$texte = $texte = preg_replace('#([^src=\"]|[^url\=])http://[a-z0-9._/-]+\.[a-z]+/([a-z0-9._/-])*(\?[a-z0-9._/-]+\=[a-z0-9._/-]+\&?)*#i', '<a href="$0">$0</a>', $texte); http://nom_de_domaine.ext?page=1&pag=2 deviennent : http://nom de domaine.ext?page=1&pag=2 quelqu'un a une idée ? Merci (PS je sais on trouve des regex sur les liens cliquables un peu partout mais j'aimerais comprendre mon erreur). |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
ton erreur c'est que, quelque part dans ton traitement, AILLEURS que dans la regexp, tu utilise htmlentities ou htmlspecialchars avant d'afficher ta donnée...
A noter qu'il est fortement conseillé de laisser cette fonction telle quelle, car l'enlever veux dire autoriser les balises comme <script> ou <iframe> qui sont des sources potentielles de problemes de sécurité. sinon tu remplace htmlentities par une fonction qui remplace *au moins* < par < pour eviter ce genre de problemes
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com