글 번호로 그 글의 대표 이미지 return 하는 함수

글 번호로 그 글의 대표 이미지 return 하는 함수

QA

글 번호로 그 글의 대표 이미지 return 하는 함수

본문

글 번호로 그 글의 대표 이미지 return 하는 함수

 

혹시 다른 분이 만들어 놓은게 있을까요?

이 질문에 댓글 쓰기 :

답변 4

나중에 쓸것 같아서 짜봤네요

 

그리고 대표 이미지는 이미지를 지정을 해야 하는데, 게시글 뷰 부분에서 이미지를 클릭하고 대표이미지 설정하는 스킨을 따로 만들어야 될것 같네요. 아니면 첨부파일에 체크하는 기능을 만들어도 되구요

 

 


<?php
function get_article_images($bo_table, $wr_id, $sort=SORT_DESC)
{
    global $g5;
    $aticle_files = get_file($bo_table, $wr_id);
    $times = array();
    $result_files = array();
    // 첨부파일 구하기
    for($i=0; $i<(int)$aticle_files['count']; $i++)
    {
        $tmp_fileinfo = array();
        $tmp_fileinfo['url'] = $tmp_filepath = $aticle_files[$i]['path']  . '/' . $aticle_files[$i]['file'];
        $parse_url = parse_url($tmp_filepath);
        $tmp_fileinfo['path'] = $_SERVER['DOCUMENT_ROOT'] . $parse_url['path'];
        array_push($result_files, $tmp_fileinfo);
        $times[] = filemtime($tmp_fileinfo['path']);
    }
    // 게시물 파일 구하기
    $row = sql_fetch(" select wr_content from {$g5['write_prefix']}{$bo_table} where wr_id = '{$wr_id}' ");
    preg_match_all("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $row['wr_content'], $matchs);
    for($i=0; $i<count($matchs[1]); $i++)
    {
        $tmp_fileinfo = array();
        $tmp_fileinfo['url'] = $matchs[1][$i];
        $parse_url = parse_url($matchs[1][$i]);
        $tmp_fileinfo['path'] = $_SERVER['DOCUMENT_ROOT'] . $parse_url['path'];
        array_push($result_files, $tmp_fileinfo);
        $times[] = filemtime($tmp_fileinfo['path']);
    }
    // 등록된 시간으로 정렬
    array_multisort($times, $sort, $result_files);
    return $result_files;
}
// 가장 나중에 등록된 이미지 구하기
$files = get_article_images($bo_table, $wr_id, SORT_DESC);
echo "<xmp>";
print_r($files);
echo "</xmp>";
?>

일반 게시판 목록에서 이미지를 불러오는 기본 함수만 쓰더라도 충분히 사용가능합니다.


<?php
$bo_table = 'notice'; // 게시판 명
$wr_id = '1'; // 게시글 고유번호
$board = get_board_db($bo_table, true);
 
// 게시판명, 게시글 고유번호, 이미지 좌우크기, 이미지 상하크기
$thumb = get_list_thumbnail($board['bo_table'], $wr_id, $board['bo_gallery_width'], $board['bo_gallery_height'], false, true);
if($thumb['src']) {
    $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >';
} else {
    $img_content = '이미지 없음';
}
echo run_replace('thumb_image_tag', $img_content, $thumb);
 

그누순정의 경우 curl 로 긁어서 bo_v_atc 안에 있는 첫번째 이미지를 가져오면 되지 않을까요?

 

http://www.mediaplayer.kr/main/utility/2 의 경우는 아래처럼요.

 


<?php
$url = "http://www.mediaplayer.kr/main/utility/2";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$face_image = explode('"', explode('<img src="', explode('<section id="bo_v_atc">', curl_exec($ch))[1])[1])[0];
curl_close($ch);
?>
<img src="<?php echo $face_image; ?>">

 

함수 처리한다면...

 


<?php
function face_img($img) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $img);
    $face_image = explode('"', explode('<img src="', explode('<section id="bo_v_atc">', curl_exec($ch))[1])[1])[0];
    curl_close($ch);
    echo '<img src="'.$face_image.'">';
}
face_img("http://www.mediaplayer.kr/main/utility/2");
face_img("http://gnuworld.kr/wittazzurri_media/25");
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 3 | RSS
QA 내용 검색

회원로그인

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