[활용팁] 댓글창에 유튭주소로 영상 나오게하기
test
분류아미나샘플
조회88
댓글0

나리야는 댓글에 컨버터 기능이 있어서 유튭 주소넣고 누르면

댓글창에 주소변환되어 나오더라구요.


골드테마는 아에 컨버터 기능사용여부도 체크되어있고, 직접주소를 넣어도 바로 영상이 나오구요.


내가 못찾아서 그런지는 모르겠는데, 아미나는 {.동영상:유튭주소} 로 쳐야 나오는데

요즘은 전부들 핸드폰으로들 하기때문에, 괄호찾아서 넣는다는것이 많이 힘든거 같아요


그래서 sir뒤적이고 골드테마보고 구글링하고 이래저래 해보긴 해봤는데

부족한거 같음에도, 일단 굴러는 가서..혹시 더 좋게 할수 있는 방안이 없을까 하고 글을 남겨보니

보강해주실수 있는분은 더 좋게 해주세요


우선 댓글창 에서만 바꾸려고 하는것이고, 전 페이징 댓글로만 쓰려고 하다보니 


보드의

view_comment.page.skin 에서만 수정했어요


상단에


if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가


어쩌구 저쩌구 내용


// 이 아래 부분이 들어갑니다

function convertYoutubeLink($content) {

    // 정규식을 사용

    $regex = '~(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\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 = 'https://www.youtube-nocookie.com/embed/'.$id.'" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen>';

        return $iframe;

    }, $content);

}

// 요기까지

?>

===============================================
그리고 아래


스타일을 하나 추가해줬구요

===========================================


그리고 댓글 for문에서


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(

    '~.*?().*?<\/a>~i',

    function ($matches) {

        // 유튜브 영상에 대한 `` 태그를 제거하고 그 내용을 반환

        return $matches[1];

    },

    $comment

);


=============================================


여기까지에요


하다보니, 댓글창에 주소를 치면 common.lip에서

$content = url_auto_link($content); 이 있어서 a링크가 다 붙던데..


단순하게, 유튜브에게서만 a링크를 제거해야지 되겠더라구요 

안하면 뭔 rel 어쩌구 요상한것이 한번 더 붙어버려서..

그래서  `` 태그 제거 로직 추가했어요


일단 이렇게 해두면


댓글창에 유튭 주소를 찍게되면


아래처럼 나와요.


유튭주소 정규식을 정확히 어떻게 해야하는지는 잘 모르겠어요.


일딴 다 때려박은 느낌이에요


1afac8c134a6ebaaeca529e4e63bde51_1712312591_572.png
 

0 Comments
포토 제목