Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Meniru Gelagat Auto-Pautan Tindanan Overflow dalam PHP?

Bagaimana untuk Meniru Gelagat Auto-Pautan Tindanan Overflow dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-10-29 20:14:03802semak imbas

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

Meniru Gelagat Auto-Pautan Stack Overflow dalam PHP

Ramai pengguna Stack Overflow telah menyatakan rasa kagum mereka terhadap fungsi pemautan automatik platform. Artikel ini meneroka cara untuk meniru tingkah laku sedemikian dalam PHP, membolehkan anda mengubah URL menjadi pautan yang menarik secara visual dalam teks anda sendiri.

Auto-Pautan Regex

Yang berikut Fungsi PHP menggunakan corak ungkapan biasa daripada Daring Fireball untuk mengenal pasti URL dalam teks:

<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>

Memformat Pautan

Setelah URL dikenal pasti, fungsi itu menghuraikannya untuk mengekstrak hos dan laluan. Maklumat ini kemudiannya digunakan untuk mencipta teks pautan, yang dipaparkan kepada pengguna:

<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>

Contoh Penggunaan

Untuk menggunakan fungsi, hanya hantar teks anda kepadanya sebagai hujah:

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

Output

Fungsi ini akan mengembalikan teks input dengan URL yang ditukar kepada pautan 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>

Atas ialah kandungan terperinci Bagaimana untuk Meniru Gelagat Auto-Pautan Tindanan Overflow dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn