Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Meniru Timbunan Kelakuan Auto-Pautan Limpahan dengan PHP?
Meniru Penjanaan Pautan Automatik Stack Overflow dengan PHP
Ciri pemautan automatik mesra pengguna Stack Overflow meningkatkan penglibatan pengguna dan kebolehcapaian maklumat. Artikel ini mempersembahkan fungsi PHP yang diilhamkan oleh keupayaan ini, menukar URL kepada kandungan hiperpautan dengan lancar.
Fungsi yang disediakan menggunakan corak regex yang mantap untuk mengenal pasti URL. Ia kemudian mengekstrak komponen penting daripada URL, seperti domain dan laluan. Dengan memotong URL yang terlalu panjang, ia memastikan paparan yang menarik dan ringkas secara visual.
Pelaksanaan Fungsi:
<code class="php">function auto_link_text($text) { // Daring Fireball's URL-matching regex pattern $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`!()\[\]{};:\'".,<>?«»“”‘’]))'; // Regex callback function for URL processing $callback = create_function('$matches', ' $url = array_shift($matches); $url_parts = parse_url($url); $text = parse_url($url, PHP_URL_HOST) . parse_url($url, PHP_URL_PATH); $text = preg_replace("/^www./", "", $text); $last = -(strlen(strrchr($text, "/"))) + 1; if ($last < 0) { $text = substr($text, 0, $last) . "&hellip;"; } return sprintf(\'<a rel="nofollow" href="%s">%s</a>\', $url, $text); '); return preg_replace_callback($pattern, $callback, $text); }</code>
Contoh Penggunaan:
<code class="php">$input_text = "This is my text. I wonder if you know about asking questions on StackOverflow: Check This out http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior Also, base_convert php function? http://pt.php.net/manual/en/function.base-convert.php#52450 http://pt.php.net/manual/en/function.base-convert.php?wtf=hehe#52450"; $output_text = auto_link_text($input_text);</code>
Teks Input:
This is my text. I wonder if you know about asking questions on StackOverflow: Check This out http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior Also, base_convert php function? http://pt.php.net/manual/en/function.base-convert.php#52450 http://pt.php.net/manual/en/function.base-convert.php?wtf=hehe#52450
Teks Output:
<code class="html">This is my text. I wonder if you know about asking questions on StackOverflow: Check This out <a rel="nofollow" href="http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior">stackoverflow.com/questions/1925455/…</a> Also, base_convert php function? <a rel="nofollow" href="http://pt.php.net/manual/en/function.base-convert.php#52450">pt.php.net/manual/en/…</a> <a rel="nofollow" href="http://pt.php.net/manual/en/function.base-convert.php?wtf=hehe#52450">pt.php.net/manual/en/…</a></code>
Fungsi PHP tersuai ini secara berkesan meniru Ciri pemautan automatik Stack Overflow, mengubah URL menjadi hiperpautan untuk kebolehbacaan yang dipertingkatkan dan pengalaman pengguna.
Atas ialah kandungan terperinci Bagaimana untuk Meniru Timbunan Kelakuan Auto-Pautan Limpahan dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!