Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Meniru Timbunan Kelakuan Auto-Pautan Limpahan dengan PHP?

Bagaimana untuk Meniru Timbunan Kelakuan Auto-Pautan Limpahan dengan PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-02 00:32:31824semak imbas

How to Mimic Stack Overflow's Auto-Link Behavior with 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) . "&amp;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/&hellip;</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/&hellip;</a>

<a rel="nofollow" href="http://pt.php.net/manual/en/function.base-convert.php?wtf=hehe#52450">pt.php.net/manual/en/&hellip;</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!

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