팁과노하우

2024.11.19 04:37

유튜브, 비메오 링크1, 2에 등록하면 본문에서 자동출력 및 재생

안녕하세요 저 아래 댓글에 링크1, 링크2에유튜브 비메오 링크 넣으면 본문에 출력되는 방법을 물어보셔서 이렇게 간단한 방법으로 글 남깁니다.~

추가로 게시물을 읽으면 링크의 영상이 바로 자동재생 되도록 하였습니다.

이부분은 함수에서 ?autoplay=1&mute=1 이부분에 해당 되니 참고하시면 됩니다.


1. 대상파일 : 게시판 스킨 view_skin.php




2. 상단 php 안에 아래 함수 추가


// 링크1과 링크2에 대해 YouTube, Vimeo, twitter, instagram,  링크를 감지하고 변환

function embed_video_with_autoplay($url) {

    // 유튜브 URL 처리

    if (preg_match('/youtu\.be\/([a-zA-Z0-9_-]+)/', $url, $matches) || 

        preg_match('/youtube\.com\/.*v=([a-zA-Z0-9_-]+)/', $url, $matches)) {

        $video_id = $matches[1];

        return "<iframe width='100%' height='315' src='https://www.youtube.com/embed/{$video_id}?autoplay=1&mute=1' frameborder='0' allow='autoplay; encrypted-media' allowfullscreen></iframe>";

    }

    

    // 비메오 URL 처리

    if (preg_match('/vimeo\.com\/(\d+)/', $url, $matches)) {

        $video_id = $matches[1];

        return "<iframe width='100%' height='315' src='https://player.vimeo.com/video/{$video_id}?autoplay=1&mute=1' frameborder='0' allow='autoplay; fullscreen' allowfullscreen></iframe>";

    }


    // 페이스북 동영상 링크에서 ID를 추출 (https://fb.watch/{video_id})

    // 페이스북 동영상 링크에서 ID를 추출 (https://www.facebook.com/{page}/videos/{video_id})

if (preg_match('/fb\.watch\/([a-zA-Z0-9_-]+)/', $url, $matches)) {

        $video_id = $matches[1];

        return "<iframe src='https://www.facebook.com/plugins/video.php?href=https://fb.watch/{$video_id}' width='100%' height='315' frameborder='0' allowfullscreen></iframe>";

    }


    // 유튜브, 비메오, 트위터, 인스타그램 URL이 아니면 빈 문자열 반환

    return "";

}



3. style 추가

<?php

.....

?>

<style>

iframe {

    width: 100%;

    aspect-ratio: 16 / 9; /* 16:9 비율 */

    height: auto; /* 실제 높이는 aspect-ratio에 의해 자동 계산됨 */

}

</style>




4. 출력할 곳에 아래 코드 추가

보통 글 내용 최상단에 출력되려면

<?php echo get_view_thumbnail($view['content']); ?> 이부분 바로 위에 아래 코드 추가


<?php 

// 링크1과 링크2 유튜브 또는 비메오 링크 일 경우 본문에 영상 자동재생 되도록 출력

$link1_embed = $view['link'][1] ? embed_video_with_autoplay($view['link'][1]) : '';

$link2_embed = $view['link'][2] ? embed_video_with_autoplay($view['link'][2]) : '';


// 출력

echo $link1_embed;

echo $link2_embed;

?>


  • 공유링크 복사
    미니홈 쪽지 구독하기
    구독하고 알림받기

    댓글목록

    profile_image
    no_profile 삼다수미니홈 1:1 대화하기  오래 전

    와~ 정말 필요 했던 자료인데.
    잘 사용하겠습니다.

    2024-11-19 10:27

    profile_image
    no_profile 이진수미니홈 1:1 대화하기  오래 전

    필요 하다고 하시니 다행이시네요 ^^ 추가로 페이스북 동영상링크도 출력되는거 공유드립니다. / 본문에 함수 부분 추가 하였습니다. 추가 된 부분은 아래이며, 이건 자동재생이 안되요 ㅜㅜ

        // 페이스북 동영상 링크에서 ID를 추출 (https://fb.watch/{video_id})
        // 페이스북 동영상 링크에서 ID를 추출 (https://www.facebook.com/{page}/videos/{video_id})
    if (preg_match('/fb\.watch\/([a-zA-Z0-9_-]+)/', $url, $matches)) {
            $video_id = $matches[1];
            return "<iframe src='https://www.facebook.com/plugins/video.php?href=https://fb.watch/{$video_id}' width='100%' height='315' frameborder='0' allowfullscreen></iframe>";
        }

    2024-11-19 10:46

    profile_image
    미키손미니홈 1:1 대화하기  오래 전

    와우 최고입니다
    유용한 기능 감사합니다
    하나더 mp4도 껴주세요^^

    2024-11-19 12:24

구매 신청
  • 구매문의 : cs@rebuilder.co.kr / 010-6466-3355
    신청 이후 담당자가 개별연락 드리고 있습니다.
    입금자명과 실제 입금자가 동일한 경우 자동처리 됩니다.
  • 결제예정 금액 : 0 (VAT별도)
    하나은행(KOEXKRSE) : 258-910104-00407 / 김은정(인덱스)

  •