Remplacer les URL par des liens <a> dans du texte
En PHP il est très facile de convertir toutes les URL présentes dans du code HTML (chaine de caractère) par des liens hypertexte cliquable, en utilisant les expressions régulières.
Le but du jeu est de matcher les URL qui ne sont pas déjà incluses dans un tag <a>
(soit dans l'ancre, soit dans un attribut).
Voilà cette expression régulière : ([^>"])(https?://[a-z0-9\./+,%#_-]+)
.
On pourrait m'améliorer en utilisant les références arrière (lookbehind) mais ça ne marche pas avec PHP qui ne supporte pas les lookbehind avec une largeur variable (erreur Compilation failed: lookbehind assertion is not fixed length) : (?<!(href="|>))(https?://[a-z0-9\./+,%#_-]+)
.
Dans un tout autre contexte, cet article est très intéressant : comment créer un plugin excel avec vsto ?.
Voilà donc le code PHP pour convertir les URL en lien cliquable :
<?php $text = preg_replace('@([^>"])(https?://[a-z0-9\./+,%#_-]+)@i', '$1<a href="$2">$2</a>', $text); ?>
Découvrez ce tutoriel photoshop : texte or & diamant à lire tout de suite !
En effet, c'est très pratique et efficace !