최신글에서 링크1의 값을 파싱(?) 하는 방법 질문입니다.
본문
최신글에서 유투브가 바로 플레이 되는 스킨을 수정하려고 합니다
=================================================
wr_link1 에다가
유투브 주소 https://www.youtube.com/watch?v=npttud7NkL0 를 입력하면
videoid 인 npttud7NkL0 를 추출해서 사용하려고 구글 검색을 하다보니까
function youtubeLinkParser(url) {
var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/;
var match = url.match(regExp);
if (match && match[2].length == 11) {
return match[2];
} else {
return null;
}
}
위와 같은 스크립트를 쓰면 되는거 같더군요
(http://stackoverflow.com/questions/18268233/get-youtube-video-id-from-link-with-javascript)
그래서.....
videoid 값이 제대로 추출되는지 보려고 latest.skin.php 에다가
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
?>
<script>
function youtubeLinkParser(url) {
var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/;
var match = url.match(regExp);
if (match && match[2].length == 11) {
return match[2];
} else {
return null;
}
}
</script>
<!-- 최신글 시작 -->
<div>
<?php for ($i = 0; $i < count($list); $i++) {
$url = $list[$i]['wr_link1'];
$video_id = youtubeLinkParser($url)
?>
<div style="position:relative">
<?php echo $video_id; ?>
</div>
<?php } ?>
<?php if (count($list) == 0) { //게시물이 없을 때 ?>
<li>게시물이 없습니다.</li>
<?php } ?>
</div>
...이렇게 해봤는데
fatal error: Call to undefined function youtubeLinkParser() in /latest.skin.php on line 29
에러가 납니다...
$video_id = youtubeLinkParser($url) 가 아마도 말도 안되는 방법인거 같은데요.... (문법 모릅니다 ;;;)
어떻게 처리를 해야 할까요?
답변 2
처리방안#2
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
?> <!-- 최신글 시작 -->
<div>
<?php for ($i = 0; $i < count($list); $i++) {
$url = $list[$i]['wr_link1'];
// 유투브 링크 파싱
if (preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match)) {
$video_id = $match[1];
} ?>
<div style="position:relative">
<?php echo $video_id; ?>
</div>
<?php } ?>
<?php if (count($list) == 0) { //게시물이 없을 때 ?>
<li>게시물이 없습니다.</li>
<?php } ?>
</div>
!-->
// 27번째줄 ~ 37번째줄까지
<?php for($i=0; $i<count($list); $i++) {
$url = $list[$i]['wr_link1'];
?>
<div style="position:relative">
<script type="text/javascript">
var video_id = youtubeLinkParser("<?php echo $url?>");
document.write( video_id );
</script>
</div>
<?php } ?>