首頁 > 後端開發 > php教程 > 如何在 PHP 中模仿 Stack Overflow 的自動連結行為?

如何在 PHP 中模仿 Stack Overflow 的自動連結行為?

Barbara Streisand
發布: 2024-10-29 20:14:03
原創
816 人瀏覽過

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

在 PHP 中模仿 Stack Overflow 的自動連結行為

許多 Stack Overflow 使用者都對此平台的自動連結功能表示欽佩。本文探討如何在 PHP 中複製此類行為,使您能夠將 URL 轉換為自己文字中具有視覺吸引力的連結。

自動連結正規表示式

以下內容PHP 函數利用Daring Fireball 中的正規表示式模式來辨識文字中的網址>

<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>
登入後複製

格式化連結

一旦辨識出URL,函數就會解析它提取主機和路徑。然後,此資訊用於建立連結文本,並顯示給使用者:

<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>
登入後複製

使用範例

要使用該功能,只需傳遞您的文字將其作為參數:

<code class="php">$text = "...";
$linked_text = auto_link_text($text);</code>
登入後複製

輸出

函數將傳回輸入文本,並將URL 轉換為HTML 連結:

以上是如何在 PHP 中模仿 Stack Overflow 的自動連結行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板