텍스트의 URL 감지 및 연결
사용자 제공 텍스트로 작업할 때 텍스트에 포함된 URL을 식별하고 연결해야 하는 경우가 많습니다. . PHP에서 이를 달성하는 방법은 다음과 같습니다.
정규식 사용
URL을 감지하려면 다음 정규식을 사용할 수 있습니다.
$rexProtocol = '(https?://)?'; $rexDomain = '((?:[-a-zA-Z0-9]{1,63}\.)+[-a-zA-Z0-9]{2,63}|(?:[0-9]{1,3}\.){3}[0-9]{1,3})'; $rexPort = '(:[0-9]{1,5})?'; $rexPath = '(/[!$-/0-9:;=@_\':;!a-zA-Z\x7f-\xff]*?)?'; $rexQuery = '(\?[!$-/0-9:;=@_\':;!a-zA-Z\x7f-\xff]+?)?'; $rexFragment = '(#[!$-/0-9:;=@_\':;!a-zA-Z\x7f-\xff]+?)?'; $regex = "&\b$rexProtocol$rexDomain$rexPort$rexPath$rexQuery$rexFragment(?=[?.!,;:\"]?(\s|$))&";
이 정규식은 다음과 일치합니다:
생성 하이퍼링크
URL이 감지되면 다음 콜백 함수를 사용하여 HTML 하이퍼링크를 생성할 수 있습니다.
function callback($match) { $completeUrl = $match[1] ? $match[0] : "http://{$match[0]}"; return '<a href="' . $completeUrl . '">' . $match[2] . $match[3] . $match[4] . '</a>'; }
이 함수는 프로토콜이 지정되지 않은 경우 "http://" 앞에 추가됩니다. 감지된 URL을 href 속성으로 사용하여 HTML 앵커 태그를 생성합니다.
Regex 및 콜백
마지막으로 preg_replace_callback을 사용하여 정규식을 적용하고 감지된 모든 URL에 대한 하이퍼링크를 생성할 수 있습니다.
$text = "Here are some URLs: stackoverflow.com/questions/1188129/pregreplace-to-detect-html-php"; print preg_replace_callback($regex, 'callback', htmlspecialchars($text));
이렇게 하면 감지된 URL이 클릭 가능한 링크로 변환된 텍스트가 출력됩니다. .
추가 고려 사항
위 내용은 정규식을 사용하여 PHP 텍스트에서 URL을 어떻게 감지하고 연결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!