$url = 'https://www.example.com/path/to/resource?query=string&foo=bar';

var_dump(parse_url($url));
/*
	array(4) {
		["scheme"]=> string(5) "https"
		["host"]=> string(15) "www.example.com"
		["path"]=> string(17) "/path/to/resource"
		["query"]=> string(20) "query=string&foo=bar"
	}
*/

var_dump(parse_url($url, PHP_URL_SCHEME)); // string(5) "https"
var_dump(parse_url($url, PHP_URL_USER)); // NULL
var_dump(parse_url($url, PHP_URL_PASS)); // NULL
var_dump(parse_url($url, PHP_URL_HOST)); // string(15) "www.example.com"
var_dump(parse_url($url, PHP_URL_PORT)); // NULL
var_dump(parse_url($url, PHP_URL_PATH)); // string(17) "/path/to/resource"
var_dump(parse_url($url, PHP_URL_QUERY)); // string(20) "query=string&foo=bar"
var_dump(parse_url($url, PHP_URL_FRAGMENT)); // NULL
URL 구성 요소: 여덟 가지
parse_url(string $url, int $component = -1): int|string|array|null|false
PHP 8.0.0 이전
PHP 8.0.0 이후
$url = 'http://:80';
var_dump(parse_url($url)); // bool(false)
filter_var(string $url, FILTER_VALIDATE_URL)
/*
    $url이 유효한 URL이면 true 아니면 false를 반환
*/
$user_input_url = $_POST['url'];

if (filter_var($user_input_url, FILTER_VALIDATE_URL)) {
    echo '올바른 URL입니다.';
} else {
    echo '잘못된 URL 형식입니다.';
}