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