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 중국어 웹사이트의 기타 관련 기사를 참조하세요!