Meniru Fungsi Auto-Pautan Stack Overflow
Untuk meningkatkan kandungan web, pertimbangkan untuk mensimulasikan ciri pemautan automatik Stack Overflow. Fungsi ini membolehkan penukaran URL biasa kepada hiperpautan yang menarik secara visual.
Pelaksanaan dalam PHP
Berikut ialah fungsi PHP yang diilhamkan oleh kelakuan Stack Overflow:
<code class="php">function auto_link_text($text) { // URL matching regex pattern from Daring Fireball $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`!()\[\]{};:\'".,<>?«»“”‘’]))'; $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
Pertimbangkan teks input berikut:
<code class="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</code>
Menggunakan fungsi auto_link_text, teks ini diubah:
<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>
Penyesuaian
Anda boleh menyesuaikan gelagat pemautan dengan mengubah suai fungsi panggil balik. Sebagai contoh, anda boleh:
Dengan mengubahsuai pelaksanaan, anda boleh mencipta penyelesaian autopautan tersuai yang memenuhi keperluan khusus anda.
Atas ialah kandungan terperinci Bagaimana untuk Meniru Fungsi Auto-Pautan Tindanan Overflow dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!