Maison  >  Article  >  développement back-end  >  Comment lier des URL dans une chaîne en utilisant PHP ?

Comment lier des URL dans une chaîne en utilisant PHP ?

DDD
DDDoriginal
2024-10-28 03:06:02499parcourir

How to Linkify URLs in a String Using PHP?

Lier des URL dans une chaîne à l'aide de PHP

Lorsque vous traitez des chaînes contenant des URL, il est souvent souhaitable de transformer ces URL en hyperliens cliquables . Ceci peut être réalisé grâce aux capacités étendues de manipulation de chaînes de PHP.

Considérez la chaîne suivante :

"Look on http://www.google.com".

L'objectif est de convertir cette chaîne en :

"Look on <a href="http://www.google.com">http://www.google.com</a>"

Solution

PHP fournit plusieurs méthodes pour rechercher et remplacer des modèles dans des chaînes. Pour lier les URL dans une chaîne, nous pouvons utiliser le code suivant :

<code class="php">$string = "Look on http://www.google.com";
$string = preg_replace(
    "~[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]~",
    "<a href=\"\0\">\0</a>", 
    $string
);</code>

Ce code utilise des expressions régulières pour identifier les URL valides dans la chaîne. Le modèle ~[[:alpha:]] ://[^<>[:space:]] [[:alnum:]/]~ recherche les chaînes commençant par le protocole "http", suivies d'un domaine ou une adresse IP, et se terminant par une barre oblique ou un autre caractère alphanumérique.

Une fois qu'une URL correspond, elle est remplacée par une chaîne qui inclut une balise d'ancrage HTML () avec l'URL comme attribut href. La séquence \0 est utilisée comme espace réservé pour l'URL correspondante.

Note de compatibilité

Le code fourni prend en charge les versions PHP 5.3 et supérieures. Pour les versions inférieures à 5.3, remplacez preg_replace par ereg_replace.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn