Bagaimana untuk Meniru Fungsi Auto-Pautan Tindanan Overflow dalam PHP?

Linda Hamilton
Lepaskan: 2024-10-30 13:32:27
asal
633 orang telah melayarinya

How to Mimic Stack Overflow's Auto-Link Functionality in PHP?

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) . "&amp;hellip;";
       }

       return sprintf(\'<a rel="nofollow" href="%s">%s</a>\', $url, $text);
   ');

   return preg_replace_callback($pattern, $callback, $text);
}</code>
Salin selepas log masuk

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

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

Penyesuaian

Anda boleh menyesuaikan gelagat pemautan dengan mengubah suai fungsi panggil balik. Sebagai contoh, anda boleh:

  • Tukar format teks pautan
  • Tambah atribut tambahan pada teg pautan
  • Kecualikan URL tertentu daripada pautan automatik

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!