현재 위치: > 최신 기사 목록> parse_url로 YouTube 비디오 ID를 추출하는 방법?

parse_url로 YouTube 비디오 ID를 추출하는 방법?

gitbox 2025-05-29

비디오 링크, 특히 YouTube와 같은 플랫폼을 처리 할 때 비디오의 고유 식별자 (비디오 ID)를 추출하는 것은 많은 응용 프로그램 시나리오에서 일반적인 요구 사항입니다. 예를 들어, 사용자 제출 YouTube 링크를 웹 페이지에 포함 시키거나 데이터베이스에 저장하려는 경우 비디오 ID 만 유지하는 것이 더 효율적이고 일관성이 있습니다. PHP에서는 내장 된 parse_url 함수를 사용 하여이 기능을 구현할 수 있습니다.

이 기사는 parse_url을 다른 기능과 결합하여 YouTube 링크에서 비디오 ID를 추출하는 방법을 소개합니다.

1. YouTube 링크 형식

실제 응용 프로그램에서 YouTube의 링크 형식에는 다음과 같은 공통 양식이있을 수 있습니다.

  1. 표준 링크 :

     https://www.youtube.com/watch?v=VIDEO_ID
    
  2. 짧은 링크 :

     https://youtu.be/VIDEO_ID
    
  3. Embed Link :

     https://www.youtube.com/embed/VIDEO_ID
    

2. parse_url을 사용하여 정보를 추출하십시오

parse_url 기능은 URL을 체계, 호스트, 경로, 쿼리 등과 같은 여러 부분으로 분해 할 수 있습니다.이 기능을 사용하여 YouTube 링크를 쉽게 분석 할 수 있습니다.

 function extractYouTubeID($url) {
    $parsedUrl = parse_url($url);

    // 표준 링크 https://www.youtube.com/watch?v=VIDEO_ID
    if (isset($parsedUrl['host']) && strpos($parsedUrl['host'], 'youtube.com') !== false) {
        if (isset($parsedUrl['path']) && $parsedUrl['path'] === '/watch') {
            if (isset($parsedUrl['query'])) {
                parse_str($parsedUrl['query'], $queryParams);
                if (isset($queryParams['v'])) {
                    return $queryParams['v'];
                }
            }
        }

        // 링크를 포함시킵니다 https://www.youtube.com/embed/VIDEO_ID
        if (strpos($parsedUrl['path'], '/embed/') === 0) {
            return substr($parsedUrl['path'], strlen('/embed/'));
        }
    }

    // 짧은 링크 https://youtu.be/VIDEO_ID
    if (isset($parsedUrl['host']) && $parsedUrl['host'] === 'youtu.be') {
        return ltrim($parsedUrl['path'], '/');
    }

    return null; // 인식되지 않은 형식
}

3. 예제 사용

 $links = [
    'https://www.youtube.com/watch?v=abc123XYZ',
    'https://youtu.be/abc123XYZ',
    'https://www.youtube.com/embed/abc123XYZ',
    'https://gitbox.net/watch?v=abc123XYZ', // 아니요 YouTube 도메인 이름,돌아와야합니다 null
];

foreach ($links as $link) {
    $videoId = extractYouTubeID($link);
    echo "링크:$link\n";
    echo "동영상 ID:" . ($videoId ?? '식별되지 않았습니다') . "\n\n";
}

4. 주목할만한 것들

  • 위의 코드는 세 가지 공통 링크 양식을 고려했지만 실제로 사용하면 첨부 된 매개 변수 순서와 타임 스탬프 매개 변수도 발생할 수 있습니다. 견고성을 향상시키기 위해 parse_str 이후 매개 변수에 대해 더 많은 검증이 수행 될 수 있습니다.

  • 신뢰할 수있는 소스 만 처리되도록 도메인 이름을 교체하거나 비 Youtube 링크를 식별 할 때 특히주의하십시오.

결론

PARSE_URLPARSE_STR 와 같은 내장 기능을 통해 PHP는 URL을 효율적으로 구문 분석하고 특정 매개 변수를 추출 할 수 있습니다. 이 방법은 간단 할뿐만 아니라 유지 관리가 양호합니다. 다양한 프로젝트에서 재사용 할 수있는 일반적인 기능으로 캡슐화하고 개발 효율성을 향상시킬 수 있습니다.