Maison > développement back-end > tutoriel php > Comment imiter le comportement de liaison automatique de Stack Overflow en PHP ?

Comment imiter le comportement de liaison automatique de Stack Overflow en PHP ?

Barbara Streisand
Libérer: 2024-10-29 20:14:03
original
816 Les gens l'ont consulté

How to Mimic Stack Overflow's Auto-Link Behavior in PHP?

Imiter le comportement de liaison automatique de Stack Overflow en PHP

De nombreux utilisateurs de Stack Overflow ont exprimé leur admiration pour la fonctionnalité de liaison automatique de la plateforme. Cet article explique comment reproduire un tel comportement en PHP, vous permettant de transformer des URL en liens visuellement attrayants dans votre propre texte.

L'expression régulière de lien automatique

Ce qui suit La fonction PHP utilise un modèle d'expression régulière de Daring Fireball pour identifier les URL dans le texte :

<code class="php">function auto_link_text($text)
{
   $pattern  = '(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'"",<>?«»“”‘’]))';
...
}</code>
Copier après la connexion

Formatage des liens

Une fois qu'une URL est identifiée, la fonction l'analyse pour extraire l'hôte et le chemin. Ces informations sont ensuite utilisées pour créer le texte du lien, qui est affiché à l'utilisateur :

<code class="php">...
$text       = parse_url($url, PHP_URL_HOST) . parse_url($url, PHP_URL_PATH);
$text       = preg_replace("/^www./", "", $text);
$last       = -(strlen(strrchr($text, "/"))) + 1;
...</code>
Copier après la connexion

Exemple d'utilisation

Pour utiliser la fonction, transmettez simplement votre texte en argument :

<code class="php">$text = "...";
$linked_text = auto_link_text($text);</code>
Copier après la connexion

Sortie

La fonction renverra le texte d'entrée avec les URL converties en liens HTML :

Input: This is my text. Check This out http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior

Output: This is my text. Check This out <a href="http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior">stackoverflow.com/questions/1925455/...</a>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal