Remplacer les urls par liens cliquable php
nightmare
-
nightmare -
nightmare -
Bonjour,
tout est dans le titre je souhaite remplacer les urls dans les chaines par des liens cliquables alors j'ai utilisé :
$str=preg_replace("#(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?#i","<a href='\\0' target='_blank'>\\0</a>",$str);
le problème c'est que les urls et toute la suite de la ligne et remplacer par lien cliquable
ex:
http://www.blablabla.com blablabla
toute cette ligne sera remplacée par un lien cliquable
est ce une erreur dans la regex ?
si quelqu'un a une solution merci de m'aider :)
tout est dans le titre je souhaite remplacer les urls dans les chaines par des liens cliquables alors j'ai utilisé :
$str=preg_replace("#(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?#i","<a href='\\0' target='_blank'>\\0</a>",$str);
le problème c'est que les urls et toute la suite de la ligne et remplacer par lien cliquable
ex:
http://www.blablabla.com blablabla
toute cette ligne sera remplacée par un lien cliquable
est ce une erreur dans la regex ?
si quelqu'un a une solution merci de m'aider :)
A voir également:
- Remplacer les urls par liens cliquable php
- Remplacer disque dur par ssd - Guide
- Remplacer par word - Guide
- Vérificateur de liens - Guide
- Easy php - Télécharger - Divers Web & Internet
- Remplacer coco - Accueil - Réseaux sociaux
6 réponses
"je crois que dans ta regex tu ne lui dis pas quel est le dernier caractère
"
merci pour ta réponse.
je veux qu'elle s'arrête une fois qu'elle rencontre un espace !!
comment deverai-je faire ceci ?
"
merci pour ta réponse.
je veux qu'elle s'arrête une fois qu'elle rencontre un espace !!
comment deverai-je faire ceci ?
j'ai trouvé ça: https://openclassrooms.com/forum/sujet/regex-tout-type-d-espace-sauf-retour-a-la-ligne-10453
ca devrais t'être utile
ca devrais t'être utile
Bonjour,
Je n'ai pas tout compris à ton expression rationnelle, mais je crois avoir trouvé le soucis.
En la décomposant :
on constate à la 6ème ligne un point « . » qui à mon avis ne devrait pas être là. Je pense que c'est lui qui laisse passer l'espace... Si c'est pour récupérer les / ou les %, il faudrait les mettre spécifiquement.
Sinon, tu peux m'expliquer la dernière ligne de ton expression ? C'est pour le port ? Dans ce cas elle est mal placée, car le port est spécifié à la suite du nom de domaine et non de l'URL entière, et il manque un \ devant « d »...
Xavier
Je n'ai pas tout compris à ton expression rationnelle, mais je crois avoir trouvé le soucis.
En la décomposant :
# (http|https|ftp) :// ( [A-Z0-9][A-Z0-9_-]* (?:.[A-Z0-9][A-Z0-9_-]*)+ ) :?(d+)?/? #i
on constate à la 6ème ligne un point « . » qui à mon avis ne devrait pas être là. Je pense que c'est lui qui laisse passer l'espace... Si c'est pour récupérer les / ou les %, il faudrait les mettre spécifiquement.
Sinon, tu peux m'expliquer la dernière ligne de ton expression ? C'est pour le port ? Dans ce cas elle est mal placée, car le port est spécifié à la suite du nom de domaine et non de l'URL entière, et il manque un \ devant « d »...
Xavier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question