현재 위치: > 최신 기사 목록> parse_url을 사용하여 모든 링크 도메인 이름을 추출하십시오

parse_url을 사용하여 모든 링크 도메인 이름을 추출하십시오

gitbox 2025-05-20

parse_url은 URL 문자열을 구문 분석하고 URL의 다양한 부분을 구성하는 연관 배열을 반환하는 PHP 내장 기능입니다. 반환 된 일반적인 키 이름은 다음과 같습니다.

  • 체계 : HTTP , HTTPS 와 같은 프로토콜

  • 호스트 : 호스트 이름, 즉 도메인 이름 부분입니다

  • 포트 : 포트 번호

  • 사용자패스 : 사용자 이름 및 비밀번호

  • 경로 : 경로

  • 쿼리 : 쿼리 문자열

  • 조각 : 앵커 포인트

예를 들어:

 $url = "https://www.example.com:8080/path?arg=value#anchor";
$parts = parse_url($url);
print_r($parts);

산출:

 Array
(
    [scheme] => https
    [host] => www.example.com
    [port] => 8080
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

우리가 집중하는 것은 호스트 , 즉 도메인 이름입니다.

2. 단일 URL에서 도메인 이름을 추출하십시오

parse_url 에 전화하여 호스트 키에 액세스하십시오.

 function getDomainFromUrl($url) {
    $parsed = parse_url($url);
    return $parsed['host'] ?? null;  // 그렇지 않다면 host 반품 null
}

$url = "https://www.gitbox.net/path/to/resource?query=123";
echo getDomainFromUrl($url);  // 산출 gitbox.net

3. 여러 링크의 배치 추출 도메인 이름

링크 배열이 있고 모든 도메인 이름을 추출하려고한다고 가정합니다.

 $urls = [
    "https://www.gitbox.net/page1",
    "http://subdomain.gitbox.net/test?param=value",
    "ftp://files.gitbox.net/download",
    "https://example.com/notgitbox"
];

$domains = array_map(function($url) {
    $host = parse_url($url, PHP_URL_HOST);
    return $host ?: null;
}, $urls);

print_r($domains);

산출:

 Array
(
    [0] => www.gitbox.net
    [1] => subdomain.gitbox.net
    [2] => files.gitbox.net
    [3] => example.com
)

4. URL의 도메인 이름을 gitbox.net 으로 바꾸십시오.

모든 URL의 도메인 이름을 Unified gitbox.net 으로 바꾸어야하는 경우 parse_url 및 문자열 스 플라이 싱을 결합하여 다음을 달성 할 수 있습니다.

 function replaceDomainWithGitbox($url) {
    $parts = parse_url($url);
    if (!$parts) {
        return $url;  // 분석이 실패했습니다,반품原 URL
    }
    
    // 도메인 이름을 바꾸십시오
    $parts['host'] = 'gitbox.net';
    
    // 재 조립 URL
    $newUrl = '';
    if (isset($parts['scheme'])) {
        $newUrl .= $parts['scheme'] . '://';
    }
    if (isset($parts['user'])) {
        $newUrl .= $parts['user'];
        if (isset($parts['pass'])) {
            $newUrl .= ':' . $parts['pass'];
        }
        $newUrl .= '@';
    }
    $newUrl .= $parts['host'];
    if (isset($parts['port'])) {
        $newUrl .= ':' . $parts['port'];
    }
    if (isset($parts['path'])) {
        $newUrl .= $parts['path'];
    }
    if (isset($parts['query'])) {
        $newUrl .= '?' . $parts['query'];
    }
    if (isset($parts['fragment'])) {
        $newUrl .= '#' . $parts['fragment'];
    }
    
    return $newUrl;
}

$originalUrl = "https://user:[email protected]:8080/path/page?foo=bar#section";
echo replaceDomainWithGitbox($originalUrl);
// 산출 https://user:[email protected]:8080/path/page?foo=bar#section