글 번호로 그 글의 대표 이미지 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");
?>
답변을 작성하시기 전에 로그인 해주세요.