Regex pour transformer les URL en lien cliquable
5 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
Regex pour transformer les URL en lien cliquable
Bonjour,
tout est dans le titre,
j'ai pour l'instant un:
Ca fonctionne sauf pour les URLS qui contiennent des %20.
J'ai cherché sur mon super pote gg mais tout ce que je trouve emploie des eregi_replace qui est maintenant déconseillé.
QQun aurait ça sous la main ?
Merci
tout est dans le titre,
j'ai pour l'instant un:
- Code: Tout sélectionner
$message= preg_replace('!http://[a-z0-9._/-]+!i', '<a href="$0" target="_blank" rel="nofollow">$0</a>', $message);
Ca fonctionne sauf pour les URLS qui contiennent des %20.
J'ai cherché sur mon super pote gg mais tout ce que je trouve emploie des eregi_replace qui est maintenant déconseillé.
QQun aurait ça sous la main ?
Merci
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
Re: Regex pour transformer les URL en lien cliquable
J'up avec du nouveau,
donc maintenant j'ai trouvé et compris ceci (ca réduit aussi les URL)
Mais la même, en local, ca fonctionne impec.
Online, ca me termine toutes mes urls / >.
Exemple: http://www.google.fr
/>
kesako ?
C'est incompatible ces deux fonctions?
donc maintenant j'ai trouvé et compris ceci (ca réduit aussi les URL)
- Code: Tout sélectionner
$callback_function = create_function(
'$matches',
'$link_displayed = (strlen($matches[0]) > 25) ? substr( $matches[0], 0, 40).\'[…]\'.substr($matches[0], -10) : $matches[0];
return \'<a href="\'.$matches[0].\'" title="\'.$matches[0].\'" target="_blank" rel="nofollow">\'.$link_displayed.\'</a>\';'
);
$message = preg_replace_callback($pattern, $callback_function, $message);
Mais la même, en local, ca fonctionne impec.
Online, ca me termine toutes mes urls / >.
Exemple: http://www.google.fr
/>
kesako ?
C'est incompatible ces deux fonctions?
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
Re: Regex pour transformer les URL en lien cliquable
Salut,
je reprends en détaillant un max du début (oubliez mes premiers posts) pour être le plus clair possible
Donc ma page de traitement:
Soit
$message1='http://www.example.com';
$message2='ceci est un exemple http://www.example.com, et ça une url';
Le problème:
Si je laisse le code tel quel, quand je fais echo de $message2, ca donne:
ceci est un exemple http://www.example.com, et ça une url /> (notez le /> en fin de phrase).
Sur $message1 je n'ai pas ce />
J'ai trouvé le coupable. Si j'enlève la fonction nl2br à $message, je n'ai plus de />. Mais, le saut de ligne ne s'effectue plus.
je reprends en détaillant un max du début (oubliez mes premiers posts) pour être le plus clair possible
Donc ma page de traitement:
- Code: Tout sélectionner
$message = stripslashes(nl2br($donnees2['message'])); // je récup la données.
// je rends les url cliquable:
$pattern = '`((?:https?|ftp)://\S+?)(?=[[:punct:]]?(?:\s|\Z)|\Z)`';
$callback_function = create_function(
'$matches',
'$link_displayed = (strlen($matches[0]) > 25) ? substr( $matches[0], 0, 40).\'[…]\'.substr($matches[0], -10) : $matches[0];
return \'<a href="\'.$matches[0].\'" title="\'.$matches[0].\'" target="_blank" rel="nofollow">\'.$link_displayed.\'</a>\';'
);
$message = preg_replace_callback($pattern, $callback_function, $message);
Soit
$message1='http://www.example.com';
$message2='ceci est un exemple http://www.example.com, et ça une url';
Le problème:
Si je laisse le code tel quel, quand je fais echo de $message2, ca donne:
ceci est un exemple http://www.example.com, et ça une url /> (notez le /> en fin de phrase).
Sur $message1 je n'ai pas ce />
J'ai trouvé le coupable. Si j'enlève la fonction nl2br à $message, je n'ai plus de />. Mais, le saut de ligne ne s'effectue plus.
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
Re: Regex pour transformer les URL en lien cliquable
C'est bon, j'ai réglé le problème. Il venait bien du nl2br.
Dans le futur, si y'en a qui ont le même soucis. Il suffit de supprimer le nl2br et de prendre une fonction.
J'ai utilisé
Que l'on retrouve ici
http://php.net/manual/fr/function.nl2br.php
Dans le futur, si y'en a qui ont le même soucis. Il suffit de supprimer le nl2br et de prendre une fonction.
J'ai utilisé
- Code: Tout sélectionner
function mynl2br($text) {
return strtr($text, array("\r\n" => '<br />', "\r" => '<br />', "\n" => '<br />'));
}
Que l'on retrouve ici
http://php.net/manual/fr/function.nl2br.php
5 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- [Regex] Problème url cliquable
- IE7 lien de type http:user:pass@URL non cliquable
- Lien Nofollow cliquable ou lien Dofollow dormant ?
- Rendre un lien cliquable dans un texte et plus
- Convertir ce bout de code (texte) en lien cliquable
- Je n'arrive pas à transformer ce lien
- Rapport type : référents d'hier avec lien cliquable
- lien cliquable de fichier php dans mail html
- Transformer automatiquement des mots en lien.
- PHP : transformer un lien en img (ereg/preg_replace)
Consultez la description détaillée des produits ou services de Google suivants : Le raccourcisseur d'URL youtu.be
- Transformer des citations 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). - Tester le type 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 backlinks vers pages internes
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. - Calcul du nombre de backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

