요즘에는 작은 프로그램을 작성할 때 정규식을 사용하여 사용자가 입력한 텍스트의 URL 주소를 일치시킨 다음 URL 주소를 클릭 가능한 링크로 바꿔야 합니다. URL 주소 일치는 모든 사람이 확인 처리에서 자주 사용하는 것이어야 한다고 생각합니다. 다음은 제가 통합한 비교적 완전한 표현입니다.
이 표현식은 http, https, ftp, ftps 및 IP 주소의 URL 주소와 일치할 수 있습니다. 이는 여전히 상대적으로 완전한 URL 주소 일치 계산입니다. 이 표현식을 사용하여 사용자 메시지의 URL 주소를 클릭 가능한 링크로 바꾸는 두 가지 작은 함수를 작성했습니다. URL을 링크로 바꾸려면 JavaScript의 교체() 함수를 사용하면 됩니다.
JavaScript 버전:
};
PHP 버전:
함수 바꾸기_URLtolink($text) {
// URL처럼 보이는 것을 가져옵니다...
$urls = 배열();
// 패턴 구축
$scheme = '(https?://|ftps?://)?';
$www = '([w] .)';
$local = 'localhost';
$ip = '(d{1,3}.d{1,3}.d{1,3}.d{1,3})';
$name = '([w0-9] )';
$tld = '(w{2,4})';
$port = '(:[0-9] )?';
$the_rest = '(/?([w#!:.? =&%@!-/] ))?';
$pattern = $scheme.'('.$ip.$port.'|'.$www.$name.$tld.$port.'|'.$local.$port.')'.$the_rest;
$pattern = '/'.$pattern.'/is';
// URL 가져오기
$c = preg_match_all($pattern, $text, $m);
만약 ($c) {
$urls = $m[0];
}
// 모든 URL을 교체합니다
if (!empty($urls)) {
foreach($url을 $url로) {
$pos = strpos('http://', $url);
if (($pos && $pos != 0) || !$pos) {
$fullurl = 'http://'.$url;
} 그 밖의 {
$fullurl = $url;
}
$link = ''.$url.'';
$text = str_replace($url, $link, $text);
}
}
$text 반환;
}