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

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

Barbara Streisand
풀어 주다: 2024-10-29 20:14:03
원래의
816명이 탐색했습니다.

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

PHP에서 Stack Overflow의 자동 링크 동작 모방

많은 Stack Overflow 사용자는 플랫폼의 자동 링크 기능에 감탄을 표시했습니다. 이 기사에서는 PHP에서 이러한 동작을 복제하여 URL을 자신의 텍스트 내에서 시각적으로 매력적인 링크로 변환할 수 있는 방법을 살펴봅니다.

자동 링크 정규식

다음 내용 PHP 함수는 Daring Fireball의 정규식 패턴을 활용하여 텍스트의 URL을 식별합니다.

<code class="php">function auto_link_text($text)
{
   $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`!()\[\]{};:\'"",<>?«»“”‘’]))';
...
}</code>
로그인 후 복사

링크 형식 지정

URL이 식별되면 함수가 이를 구문 분석합니다. 호스트와 경로를 추출합니다. 그런 다음 이 정보는 사용자에게 표시되는 링크 텍스트를 생성하는 데 사용됩니다.

<code class="php">...
$text       = parse_url($url, PHP_URL_HOST) . parse_url($url, PHP_URL_PATH);
$text       = preg_replace("/^www./", "", $text);
$last       = -(strlen(strrchr($text, "/"))) + 1;
...</code>
로그인 후 복사

사용 예

기능을 사용하려면 텍스트를 전달하기만 하면 됩니다. 인수로 사용:

<code class="php">$text = "...";
$linked_text = auto_link_text($text);</code>
로그인 후 복사

출력

이 함수는 HTML 링크로 변환된 URL과 함께 입력 텍스트를 반환합니다.

Input: This is my text. Check This out http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior

Output: This is my text. Check This out <a href="http://www.stackoverflow.com/questions/1925455/how-to-mimic-stackoverflow-auto-link-behavior">stackoverflow.com/questions/1925455/...</a>
로그인 후 복사

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿