[활용팁] 댓글창에 유튭주소로 영상 나오게하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 368 조회
-
목록
본문
나리야는 댓글에 컨버터 기능이 있어서 유튭 주소넣고 누르면
댓글창에 주소변환되어 나오더라구요.
골드테마는 아에 컨버터 기능사용여부도 체크되어있고, 직접주소를 넣어도 바로 영상이 나오구요.
내가 못찾아서 그런지는 모르겠는데, 아미나는 {.동영상:유튭주소} 로 쳐야 나오는데
요즘은 전부들 핸드폰으로들 하기때문에, 괄호찾아서 넣는다는것이 많이 힘든거 같아요
그래서 sir뒤적이고 골드테마보고 구글링하고 이래저래 해보긴 해봤는데
부족한거 같음에도, 일단 굴러는 가서..혹시 더 좋게 할수 있는 방안이 없을까 하고 글을 남겨보니
보강해주실수 있는분은 더 좋게 해주세요
우선 댓글창 에서만 바꾸려고 하는것이고, 전 페이징 댓글로만 쓰려고 하다보니
보드의
view_comment.page.skin 에서만 수정했어요
상단에
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
어쩌구 저쩌구 내용
// 이 아래 부분이 들어갑니다
function convertYoutubeLink($content) {
// 정규식을 사용
$regex = '~(?:https?://)?(?:www.)?(?:youtu.be/|youtube.com(?:/embed/|/v/|/watch?v=|/ytscreeningroom?v=|/feeds/api/videos/|/userS*[^w-s]|S*[^w-s]))([w-]{11})[a-z0-9;:@#?&%=+/$_.-]*~i';
$content = clean_xss_tags($content); // XSS 처리
return preg_replace_callback($regex, function($matches) {
// 비디오 ID를 사용하여 iframe 태그를 생성
$id = $matches[1];
$iframe = '';
return $iframe;
}, $content);
}
// 요기까지
?>
그리고 댓글 for문에서
<?php
for ($i=0; $i<$cmt_amt; $i++) {
$comment_id = $list[$i]['wr_id'];
$cmt_depth = ""; // 댓글단계
이렇게 나오는 부분에 $comment = $list[$i]['content']; 이 있는데
이 부분 앞뒤로 아래 코드를 넣었어요
$list[$i]['content'] = convertYoutubeLink($list[$i]['content']);
$comment = $list[$i]['content'];
// 여기에 `` 태그 제거 로직 추가
$comment = preg_replace_callback(
'~.*?().*?~i',
function ($matches) {
// 유튜브 영상에 대한 `` 태그를 제거하고 그 내용을 반환
return $matches[1];
},
$comment
);
=============================================
여기까지에요
하다보니, 댓글창에 주소를 치면 common.lip에서
$content = url_auto_link($content); 이 있어서 a링크가 다 붙던데..
단순하게, 유튜브에게서만 a링크를 제거해야지 되겠더라구요
안하면 뭔 rel 어쩌구 요상한것이 한번 더 붙어버려서..
그래서 `` 태그 제거 로직 추가했어요
일단 이렇게 해두면
댓글창에 유튭 주소를 찍게되면
아래처럼 나와요.
유튭주소 정규식을 정확히 어떻게 해야하는지는 잘 모르겠어요.
일딴 다 때려박은 느낌이에요
관련자료
-
링크