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
Lepaskan: 2024-10-29 20:14:03
asal
801 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Contoh Penggunaan

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

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

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan