메뉴 건너뛰기

xe 컨텐츠에서 유투브 영상 플레이 주소 리턴

Average Rating:
8.0/10 2명 참여
Rate this page:
일본어선생 (6)   익명 (10)  
평점 한줄평 글쓴이 작성날짜
10
0 (-8720) 03/27 14:56
6
0 일본어선생 (4) 03/28 02:57

유투브 영상이 포함된 문서에서 유부트 플레이 주소를 찾아 리턴해 줍니다.

썸네일 구하는 방법과 유사합니다. 다만 별다른 변수없이 주소값을 리턴합니다.

 

xe/modules/document/document.item.php

 

아래의 코드를 적당한 위치에 꼽아 넣습니다. 

 

class documentItem extends Object
{
... 중략

function getMultimedia(){
  if(!$this->document_srl) return;
   $content = $this->get('content');
   /* youtube*/
   $youtubeid = getYoutubeId($content);
   //'!http:\/\/w{0,3}\.youtube[^\' \'\n\r"]+!';
   //preg_match_all($erg, $content, $mtc, PREG_PATTERN_ORDER);
   if ($youtubeid != "No valid YoutubeId extracted") {
    return 'http://www.youtube.com/watch?v='.$youtubeid;
   }  
 }

...

}

 

 

// documentItem 클래스 밖의 아무곳에나 넣으세요.

function getYoutubeId($sYoutubeUrl) {
 # set to zero
 $youtube_id = "";
 $sYoutubeUrl = trim($sYoutubeUrl);
 # the User entered only the eleven chars long id, Case 1
 if(strlen($sYoutubeUrl) === 11) {
  $youtube_id = $sYoutubeUrl;
  return $sYoutubeUrl;
 }
 # the User entered a Url
 else {
  # try to get all Cases
  if (preg_match('~(?:youtube\.com/(?:user/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})~i', $sYoutubeUrl, $match)) {
   $youtube_id = $match[1];
   return $youtube_id;
  }
  # try to get some other channel codes, and fallback extractor
  elseif(preg_match('~http://www.youtube.com/v/([A-Za-z0-9\-_]+).+?|embed\/([0-9A-Za-z-_]{11})|watch\?v\=([0-9A-Za-z-_]{11})|#.*/([0-9A-Za-z-_]{11})~si', $sYoutubeUrl, $match)) {
   for ($i=1; $i<=4; $i++) {
    if (strlen($match[$i])==11) {
     $youtube_id = $match[$i];
     break;
    }
   }
   return $youtube_id;
  }
  else {
   $youtube_id = "No valid YoutubeId extracted";
   return $youtube_id;
  }
 }
}

 


사용법

 

{getMultimedia()}


 

 


 

 

제목 날짜
Star Rating 별점 위젯 업데이트 정보   2014.03.09
php 가변함수  
    6
test  
    5
rest_default 버그 잡기  
    9
별점 추가작업  
    7
태그 목록