유튜브, 비메오 영상 가져오기 이미지 가져오기
본문
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;
//아이디로 이미지 src 가져오기
function get_youtube_image($video_url, $thumb_type="", $thumb_width="") {
$video = array();
$query = array();
$video_url = trim(strip_tags($video_url));
list($url, $opt) = explode("|", $video_url);
$url = trim($url);
if($url) {
if(!preg_match('/(http|https)\:\/\//i', $url)) {
$url = 'http:'.$url;
}
} else {
return;
}
$video['video'] = str_replace(array(" ", " "), array("", ""), $url);
$video['video_url'] = str_replace(array(" ", "&", " "), array("", "&", ""), $url);
$info = @parse_url($video['video_url']);
if($info['host'] == "youtu.be") { //유튜브
$video['type'] = 'youtube';
$video['vid'] = trim(str_replace("/","", trim($info['path'])));
$video['vid'] = substr($video['vid'], 0, 11);
} else if($info['host'] == "www.youtube.com" || $info['host'] == "m.youtube.com") { //유튜브
$video['type'] = 'youtube';
if(preg_match('/\/embed\//i', $video['video_url'])) {
list($youtube_url, $youtube_opt) = explode("/embed/", $video['video_url']);
$vids = explode("?", $youtube_opt);
$video['vid'] = $vids[0];
} else {
$vids = explode("?v=", $video['video_url']);
$video['vid'] = substr($vids[1], 0, 11);
}
} else if($info['host'] == "vimeo.com") { //vimeo
$video['type'] = 'vimeo';
$video['vid'] = trim(str_replace("/","", trim($info['path'])));
$video['vid'] = substr($video['vid'], 0, 9);
$vimeo_url = "http://vimeo.com/api/v2/video/".$video['vid'].".json";
$vimeo_curl = curl_init ();
curl_setopt ($vimeo_curl, CURLOPT_URL, $vimeo_url);
curl_setopt ($vimeo_curl, CURLOPT_POST, 0);
curl_setopt ($vimeo_curl, CURLOPT_RETURNTRANSFER, 1);
$vimeo_response = curl_exec ($vimeo_curl);
$vimeo_returns = json_decode($vimeo_response);
}
if($video['vid']) {
switch($thumb_type){
/*case '0' :
$videoimg = '//img.youtube.com/vi/'.$video['vid'].'/0.jpg';
break;*/
case '1' :
$videoimg = '//img.youtube.com/vi/'.$video['vid'].'/1.jpg';
break;
case '2' :
$videoimg = '//img.youtube.com/vi/'.$video['vid'].'/2.jpg';
break;
case '3' :
$videoimg = '//img.youtube.com/vi/'.$video['vid'].'/3.jpg';
break;
case 'hq' :
$videoimg = '//img.youtube.com/vi/'.$video['vid'].'/hqdefault.jpg';
break;
case 'mq' :
$videoimg = '//img.youtube.com/vi/'.$video['vid'].'/mqdefault.jpg';
break;
case 'sd' :
$videoimg = '//img.youtube.com/vi/'.$video['vid'].'/sddefault.jpg';
break;
case 'maxres' :
$videoimg = '//img.youtube.com/vi/'.$video['vid'].'/maxresdefault.jpg';
break;
case 'thumbnail_small' :
$videoimg = $vimeo_returns[0]->thumbnail_small;
break;
case 'thumbnail_medium' :
$videoimg = $vimeo_returns[0]->videoimg;
break;
case 'thumbnail_large' :
$videoimg = $vimeo_returns[0]->videoimg;
break;
default :
$videoimg = '//img.youtube.com/vi/'.$video['vid'].'/default.jpg';
}
if($thumb_type) {
echo '<a href="'.$video_url.'" target="_blank" class="lt_thumb"><img src="'.$videoimg.'" alt="" class="lt_img" width="'.$thumb_width.'"></a>';
} else {
if($video['type'] == "youtube") { //youtube
echo '<div class="video-wrap"><iframe width="1280" height="720" src="https://www.youtube.com/embed/'.$video['vid'].'" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>';
} else if($video['type'] == "vimeo") { //vimeo
echo '<div class="video-wrap"><iframe width="1280" height="720" src="https://player.vimeo.com/video/'.$video['vid'].'" title="vimeo-player" frameborder="0" allowfullscreen></iframe></div>';
}
}
}
}
?>
.video-wrap {position:relative; padding-bottom:56.25%; padding-top:30px; height:0; overflow:hidden;}
.video-wrap iframe,
.video-wrap object,
.video-wrap embed {position:absolute; top:0; left:0; width:100%; height:100%;}
댓글목록 0
등록된 댓글이 없습니다.