반응형
    
    
    
  1. 함수
function getYoutubeId($url) {
    // 유튜브 URL 형식에 맞는 정규식 패턴 (youtu.be, youtube.com/watch, embed, v, shorts 지원)
    $pattern = '/(?:youtu\.be\/|youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/))([^#&?]{11})/';
    
    // 정규식을 사용해 URL에서 비디오 ID 추출
    preg_match($pattern, $url, $matches);
    
    // 추출된 ID가 11자리인지 확인 후 반환, 아니면 false 반환
    return (isset($matches[1]) && strlen($matches[1]) == 11) ? $matches[1] : false;
}
2. 사용법
$videoId = getYoutubeId($url);
echo $videoId;
3. 예제
// 사용 예제
$urls = [
    "https://www.youtube.com/watch?v=abcd1234efg",
    "https://youtu.be/abcd1234efg",
    "https://www.youtube.com/embed/abcd1234efg",
    "https://www.youtube.com/shorts/abcd1234efg",
    "https://www.youtube.com/v/abcd1234efg",
    "https://youtube.com/shorts/abcd1234efg?si=u3aq_zRejUsppB0W",
    "https://youtu.be/abcd1234efg?si=uGSa0bsJfYVrH-MD",
];
foreach ($urls as $url) {
    $videoId = getYoutubeId($url);
    if ($videoId) {
        echo "추출된 비디오 ID: $videoId\n<br>";
    } else {
        echo "유효하지 않은 URL 또는 비디오 ID를 찾을 수 없습니다.\n<br>";
    }
}
4. 결과
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
5. 지원되는 URL 형식
- 기본 YouTube 동영상 URL
- https://www.youtube.com/watch?v=dQw4w9WgXcQ
- 추출된 ID: dQw4w9WgXcQ
 
- 짧은 YouTube URL
- https://youtu.be/dQw4w9WgXcQ
- 추출된 ID: dQw4w9WgXcQ
 
- 임베드(Embed) URL
- https://www.youtube.com/embed/dQw4w9WgXcQ
- 추출된 ID: dQw4w9WgXcQ
 
- YouTube Shorts URL
- https://youtube.com/shorts/dQw4w9WgXcQ
- 추출된 ID: dQw4w9WgXcQ
 
- 쿼리 파라미터가 포함된 Shorts URL
- https://youtube.com/shorts/abcd1234efg?si=u3aq_zRejUsppB0W
- 추출된 ID: abcd1234efg
 
- 쿼리 파라미터가 포함된 짧은 URL
- https://youtu.be/abcd1234efg?si=uGSa0bsJfYVrH-MD
- 추출된 ID: abcd1234efg
 
- 추가 쿼리 파라미터가 포함된 기본 YouTube URL
- https://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=youtu.be
- 추출된 ID: dQw4w9WgXcQ
 
- 플레이리스트가 포함된 기본 YouTube URL
- https://www.youtube.com/watch?v=dQw4w9WgXcQ&list=PLwxnUUM01nt2nMh9DPq09e6fIDbumybgt
- 추출된 ID: dQw4w9WgXcQ
 
반응형
    
    
    
  'PHP' 카테고리의 다른 글
| PHP 정규표현식 (0) | 2024.11.22 | 
|---|---|
| PHP 배열 함수 정리 (0) | 2024.11.21 | 
| 두 날짜 사이의 날짜들을 배열로 반환 하는 함수 (0) | 2024.11.14 | 
| PHP 날짜 몇분전, 몇시간전, 몇일전, 몇달전, 몇년전 지난 시간 계산 (0) | 2024.11.10 | 
| PHP에서 $_SERVER 변수에 대한 설명 (0) | 2024.11.09 |