최신글에 유튜브 썸네일 보이게 할려면..

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
최신글에 유튜브 썸네일 보이게 할려면..

QA

최신글에 유튜브 썸네일 보이게 할려면..

본문

외부 이미지를 복사해서 글쓰기하면

최신글에서 그 이미지가 썸네일로 나오게 작업을 했더니

 

이번에는 유튜브 주소를 넣으니 최신글에서 유튜브 썸네일이 나오지 않네요.

 

소스가 조금 꼬인거 같은데 봐 주실래요?

 


<a href="<?php echo $list[$i]['href'] ?>" class="gall_img"><?php
    $v = "";
    $mov_link = "";
    $img_content = "";
    $mov_link = $list[$i]['wr_10'];
    $youtube_url = parse_url($mov_link);
    parse_str($youtube_url['query']);
    if($v){
    $img_content = '<img src="'.get_yt_thumb( 'http://youtu.be/'.$v, 'maxres' ).'" alt="'.$list[$i]['subject'].'" width="'.$thumb_width.'" height="'.$thumb_height.'" />';
    }
    
    if(!$img_content) {
    $img_content = '<img src="'.$img.'" alt="'.$thumb['alt'].'" >';
    }                            
    $thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], $thumb_width, $thumb_height, false, true);
    
   if($thumb['src']) {
      $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" width="'.$board['bo_gallery_width'].'" height="'.$board['bo_gallery_height'].'">';
        //    외부 이미지 썸네일 만들기 {
    } else if($url_img = get_editor_image($list[$i]['wr_content'])){
        $img_src = $url_img[1][0];
        preg_match("/src=[\'\"]?([^>\'\"]+[^>\'\"]+)/i", $img_src, $m);
        $src = htmlspecialchars_decode($m[1]);
        preg_match("/alt=[\"\']?([^\"\']*)[\"\']?/", $img_src, $m);
        $alt = get_text($m[1]);
        $filename =  hash("sha256", $src);
        $source_path = $target_path = G5_DATA_PATH.'/file/'.$bo_table;
        $file_download = $target_path."/".$filename;
        if (!file_exists($file_download)) {
            copy($src, $file_download);
        }
        $thumb_src = thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_height, false, true);
        
        $img_content = '<img src="'.G5_DATA_URL.'/file/'.$bo_table.'/'.$thumb_src.'" alt="'.$alt.'" >';
    //    } 외부 이미지 썸네일 만들기
   } else {
      $img_content = '';
    }
    if($thumb['src']) {
        $img_content = '<span style="width:'.$thumb_width.'px;height:'.$thumb_height.'px"><img src="'.$img.'" alt="'.$thumb['alt'].'" ></span>';
    }
        
    echo $img_content;
?></a>

이 질문에 댓글 쓰기 :

답변 1

get_yt_thumb 을 확인해 보세요..

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
$thumb_width = 320;
$thumb_height = 180;

if ( ! function_exists( 'get_video_id' ) )
{
    function get_video_id( $str )
    {
        if( substr( $str, 0, 4 ) == 'http' )
        {
            if( strpos( $str, 'youtu.be' ) )
            {
                return array_pop( explode( '/', $str ) );
            }
            else if( strpos( $str, '/embed/' ) )
            {
                return array_pop( explode( '/', $str ) );
            }
            else if( strpos( $str, '/v/' ) )
            {
                return array_pop( explode( '/', $str ) );
            }
            else
            {
                $params = explode( '&', array_shift( explode( '#', array_pop( explode( '?', $str ) ) ) ) );
                foreach( $params as $data )
                {
                    $arr = explode( '=', $data );
                    if( $arr[ 0 ] == 'v' )
                    {
                        return $arr[ 1 ];
                    }
                }
            }
        }
        else
        {
            return $str;
        }
 
        return '';
    }
}
 
if ( ! function_exists( 'get_yt_thumb' ) )
{
    function get_yt_thumb( $url_or_id, $type )
    {
        switch( $type )
        {
            case '0' :
                return '//img.youtube.com/vi/'.get_video_id( $url_or_id ).'/0.jpg';
                break;
            case '1' :
                return '//img.youtube.com/vi/'.get_video_id( $url_or_id ).'/1.jpg';
                break;
            case '2' :
                return '//img.youtube.com/vi/'.get_video_id( $url_or_id ).'/2.jpg';
                break;
            case '3' :
                return '//img.youtube.com/vi/'.get_video_id( $url_or_id ).'/3.jpg';
                break;
            case 'hq' :
                return '//img.youtube.com/vi/'.get_video_id( $url_or_id ).'/hqdefault.jpg';
                break;
            case 'mq' :
                return '//img.youtube.com/vi/'.get_video_id( $url_or_id ).'/mqdefault.jpg';
                break;
            case 'sd' :
                return '//img.youtube.com/vi/'.get_video_id( $url_or_id ).'/sddefault.jpg';
                break;
            case 'maxres' :
                return '//img.youtube.com/vi/'.get_video_id( $url_or_id ).'/maxresdefault.jpg';
                break;
            default :
                return '//img.youtube.com/vi/'.get_video_id( $url_or_id ).'/default.jpg';
        }
    }
}
?>

답변을 작성하시기 전에 로그인 해주세요.
전체 60,205
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT