테스트 사이트 - 개발 중인 베타 버전입니다

최신글에서 링크1의 값을 파싱(?) 하는 방법 질문입니다. 채택완료

9년 전 조회 5,777

최신글에서 유투브가 바로 플레이 되는 스킨을 수정하려고 합니다

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개

채택된 답변
+20 포인트

처리방안#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>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고