Comment remplacer une URL par un lien en PHP ?
Réponses rédigées par Antoine
Dernière mise à jour : 2022-01-31 12:12:56
Question
Bonjour, je cherche le moyen, en PHP, de remplacer une URL présente dans un texte, par un lien du type <a href="">
. J'aimerais également pouvoir dans certains cas ajouter, ou pas, les options target
et rel
; merci.
Réponse
Pour remplacer une URL par un lien en PHP, avec la gestion des options target
, rel
, title
, ou autres, vous pouvez créer une fonction PHP comme celle-ci :
<?php
function autoLien($url, $param=array()) {
$params = "";
foreach ($param as $option => $valeur) {
$params .= " {$option}=\"{$valeur}\"";
}
$url = " " . $url;
$url = preg_replace('#([^"=\'>])((http|https|ftp)://[^\s<]+[^\s<\.)])#i', '$1<a href="$2"'.$params.'>$2</a>', $url);
$url = substr($url, 1);
return $url;
}
$url = autoLien("https://www.collaborativejob.com", array("target"=>"_blank", "rel"=>"dofollow", "title"=>"1FORMATIK.com"));
echo $url;
?>
Remarque : le premier argument de la fonction autoLien()
est l'URL à remplacer par le lien HTML, et le second est un array
dans lequel vous passez l'ensemble des options et paramètres de la balise HTML <a>
.
La fonction identifie chacun des paramètres passés dans le tableau via une boucle foreach
puis remplace l'URL par un lien avec la fonction PHP preg_replace
.