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!