Home > Backend Development > PHP Tutorial > How to Mimic Stack Overflow\'s Auto-Link Behavior in PHP?

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

Barbara Streisand
Release: 2024-10-29 20:14:03
Original
816 people have browsed it

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

Mimicking Stack Overflow's Auto-Link Behavior in PHP

Many Stack Overflow users have expressed their admiration for the automatic linking functionality of the platform. This article explores how to replicate such behavior in PHP, enabling you to transform URLs into visually appealing links within your own text.

The Auto-Link Regex

The following PHP function utilizes a regular expression pattern from Daring Fireball to identify URLs in text:

<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>
Copy after login

Formatting the Links

Once a URL is identified, the function parses it to extract the host and path. This information is then used to create the link text, which is displayed to the user:

<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>
Copy after login

Usage Example

To use the function, simply pass your text to it as an argument:

<code class="php">$text = "...";
$linked_text = auto_link_text($text);</code>
Copy after login

Output

The function will return the input text with URLs converted into HTML links:

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>
Copy after login

The above is the detailed content of How to Mimic Stack Overflow\'s Auto-Link Behavior in PHP?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template