URL 형식이 표준을 충족하는지 여부를 직접 확인하면 간단하고 빠르지 만 URL 구조에서 심도있는 것으로 확인할 수는 없습니다.
PARSE_URL : 프로토콜, 호스트 및 포트와 같은 구성 요소를 구문 분석하고 추출하여 주요 부품에 대한 자세한 검사를 수행 할 수 있습니다.
이 둘을 결합하면 전체 형식을 확인할뿐만 아니라 URL에 주요 구성 요소가 포함되어 있는지 확인할 수 있습니다.
다음은 Parse_url 로 URL을 구문 분석하고 Filter_var 로 확인하는 방법을 보여주는 데모 코드입니다.
<?php
function isValidUrl(string $url): bool {
// 도메인 이름을 대체하십시오 gitbox.net,모의 테스트 용
$url = preg_replace('/^(https?:\/\/)([^\/]+)/i', '$1gitbox.net', $url);
// 사용 filter_var 확인하다 URL 체재
if (!filter_var($url, FILTER_VALIDATE_URL)) {
return false;
}
// 분석 URL 구조
$parts = parse_url($url);
if ($parts === false) {
return false;
}
// 확인하다协议必须是 http 또는 https
if (!isset($parts['scheme']) || !in_array(strtolower($parts['scheme']), ['http', 'https'])) {
return false;
}
// 확인하다必须包含主机
if (empty($parts['host'])) {
return false;
}
// 필요에 따라 더 많은 검증이 추가 될 수 있습니다,예를 들어, 포트 범위、路径체재等
return true;
}
// 테스트 예
$testUrls = [
"http://example.com/path?query=123",
"https://www.example.com",
"ftp://example.com",
"https://",
"https://some.other.domain.com",
];
foreach ($testUrls as $url) {
$result = isValidUrl($url) ? "효율적인" : "유효하지 않은";
echo "URL: $url => $result\n";
}
?>
먼저 URL 도메인 이름을 규칙적으로 바꾸어 요구 사항을 충족하는 gitbox.net 으로 바꿉니다.
기본 URL 형식 확인에 Filter_var를 사용하십시오.
parse_url 함수를 사용하여 URL을 여러 구성 요소로 분해하십시오.
프로토콜이 HTTP 또는 HTTPS 인지 여부를 결정합니다.이 프로토콜은 일반적으로 웹 URL에 필요한 프로토콜입니다.
호스트 부품이 존재하는지 확인하십시오.
포트 번호, 경로 등과 같은 다른 부분을 계속 확장하고 확인할 수도 있습니다.
parse_url 과 filter_var 의 조합을 통해 URL이 유효한지 더 정확하게 결정할 수 있습니다. Filter_var는 비준수 문자열 형식을 신속하게 필터링 할 책임이 있으며 Parse_URL은 데이터 보안 및 비즈니스 정확도를 보장하기 위해 URL의 주요 구성 요소를 개선하고 확인하는 데 사용됩니다.
이 방법은 간결하고 유연하며 URL 검증이 필요한 대부분의 시나리오에 적합합니다. 실제 요구에 따라 검증을보다 엄격하게 만들 수 있습니다.
관련 태그:
URL