테스트 사이트 - 개발 중인 베타 버전입니다

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

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

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

 

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

 

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

 

</strong></p>

<p><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( '<a href="http://youtu.be/'.$v," target="_blank" rel="noopener noreferrer">http://youtu.be/'.$v,</a> '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'].'">';</p>

<p>        //    외부 이미지 썸네일 만들기 {

    } else if($url_img = get_editor_image($list[$i]['wr_content'])){</p>

<p>        $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;</p>

<p>        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.'" >';

    //    } 외부 이미지 썸네일 만들기</p>

<p>   } else {

      $img_content = '';

    }</p>

<p>    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>

<strong>

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

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

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

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

로그인

전체 질문 목록

🐛 버그신고