>  기사  >  백엔드 개발  >  PHP에서 스택 오버플로의 자동 링크 기능을 모방하는 방법은 무엇입니까?

PHP에서 스택 오버플로의 자동 링크 기능을 모방하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-30 13:32:27634검색

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

Stack Overflow의 자동 링크 기능 모방

웹 콘텐츠를 향상하려면 Stack Overflow의 자동 링크 기능 시뮬레이션을 고려해 보세요. 이 기능을 사용하면 일반 URL을 시각적으로 매력적인 하이퍼링크로 변환할 수 있습니다.

PHP에서 구현

다음은 Stack Overflow의 동작에서 영감을 받은 PHP 함수입니다.

<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>

사용 예

다음 입력 텍스트를 고려하세요.

<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>

auto_link_text 함수를 사용하면 이 텍스트가 변환됩니다.

<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>

사용자 정의

콜백 함수를 수정하여 연결 동작을 조정할 수 있습니다. 예를 들어 다음과 같이 할 수 있습니다.

  • 링크 텍스트 형식 변경
  • 링크 태그에 추가 속성 추가
  • 자동 링크에서 특정 URL 제외

구현을 조정하여 특정 요구 사항을 충족하는 사용자 정의 자동 연결 솔루션을 만들 수 있습니다.

위 내용은 PHP에서 스택 오버플로의 자동 링크 기능을 모방하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.