PHP を使用した Stack Overflow の自動リンク生成の模倣
Stack Overflow のユーザーフレンドリーな自動リンク機能は、ユーザーエンゲージメントと情報へのアクセシビリティを強化します。この記事では、URL をハイパーリンクされたコンテンツにシームレスに変換する、この機能からインスピレーションを得た PHP 関数を紹介します。
提供される関数は、堅牢な正規表現パターンを利用して URL を識別します。次に、ドメインやパスなどの重要なコンポーネントを URL から抽出します。過度に長い URL を切り詰めることにより、視覚的に魅力的で簡潔な表示が保証されます。
関数実装:
<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>
使用例:
<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>
入力テキスト:
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 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>
このカスタム PHP 関数は、スタック オーバーフローの自動リンク機能。URL をハイパーリンクに変換して、読みやすさとユーザー エクスペリエンスを向上させます。
以上がPHP でスタック オーバーフローの自動リンク動作を模倣するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。