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

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

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

 

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

 

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

 

Copy
<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개

채택된 답변
+20 포인트

get_yt_thumb 을 확인해 보세요..

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

유튜브 정상적으로 썸네일 나오는거 가지고 if 구문을 수정한거라서 아마 if 구문에서 오류가 있어 보입니다.
<?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';
}
}
}
?>

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고