19'C 흐림
서울 강남구
1. 게시판 스킨
업로드 : /theme/eb4_basic/skin/board/gallery-plyr
2. EB최신글
업로드 : /theme/eb4_basic/skin/eblatest/gallery-plry
3. /eyoom/class/latest.class.php
파일내 get_latest_records() 상단에 아래코드 추가
/**
* 주어진 URL로부터 비디오 ID와 제공자를 추출하여 배열로 반환하는 함수
*/
public function get_video_info($url) {
$video_id = '';
$provider = '';
// YouTube URL 패턴
$youtube_pattern =
'%^# Match any YouTube URL
(?:https?://)? # Optional scheme. Either http or https
(?:www.)? # Optional www subdomain
(?: # Group host alternatives
youtu.be/ # Either youtu.be,
| youtube.com # or youtube.com
(?: # Group path alternatives
/embed/ # Either /embed<span>
| /v/ # or /v<span>
| /watch?v= # or /watch?v=
) # End path alternatives.
) # End host alternatives.
([w-]{10,12}) # $1: Required 10-12 character ID
%x';
// Vimeo URL 패턴
$vimeo_pattern =
'%^# Match Vimeo URL
(?:https?://)? # Optional scheme. Either http or https
(?:player.)? # Optional subdomain
vimeo.com/ # Domain
(?:video/)? # Optional video subdirectory
(d+) # $1: Vimeo video ID
%x';
// YouTube URL 확인
if (preg_match($youtube_pattern, $url, $matches)) {
$video_id = $matches[1];
$provider = 'youtube';
}
// Vimeo URL 확인
elseif (preg_match($vimeo_pattern, $url, $matches)) {
$video_id = $matches[1];
$provider = 'vimeo';
}
// 배열로 반환
return array(
'video_id' => $video_id,
'provider' => $provider
);
}
/**
* 내용에서 provider, video_id 추출
*/
$latest_list[$i]['is_vimg'] = false;
preg_match_all("/{(동영상|video):([^}]*)}/is", $latest_list[$i]['wr_content'], $match);
$vimgs = (isset($match[2]) && is_array($match[2])) ? $match[2] : array();
if($vimgs[0]){
$provider = $this->get_video_info(trim(strip_tags($vimgs[0])));
if(in_array($provider['provider'], array("youtube", "vimeo"))){
$latest_list[$i]['provider'] = $provider['provider'];
$latest_list[$i]['video_id'] = $provider['video_id'];
$latest_list[$i]['is_vimg'] = true;
}
}