반응형
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 |