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

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

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';
        }
    }
}
?>

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

회원로그인

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