본문으로 바로가기

<IMG> 태그 추출 (게시글 썸네일 만들기)

category 웹코딩/PHP 2016. 8. 23. 17:40

게시글 본문에 이미지가 1개 이상 삽입되어 있다면, 첫번째 이미지를 해당 게시글의 썸네일로 표시하는 방법.

preg_match("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $contents, $matches);

echo $matches[0]; // img 태그 전체
echo $matches[1]; // img 태그 중 src 값

응용해서 아래와 같은 결과물을 만들 수 있다.

게시판 글 중에 이미지가 있는 썸네일과 제목+내용 일부를 표시, 없으면 제목+내용 일부만 표시.

$contents = stripslashes($contents); // addslashes 함수를 사용하여 DB에 저장한 경우
preg_match("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $contents, $matches);
$contents = strip_tags($contents); // 본문 내용을 텍스트만 일부 표시하려는 경우 태그 제거

if($matches[1]) $thumb = '<span class="link_thumb"><img src="'.$matches[1].'" width="70" height="70" class="thumb_img" alt=""></span>';
else $thumb = '';

best한 방법은 아니다. 게시글 본문에 큰 용량의 이미지 파일이 삽입되어 있다면 해당 이미지를 고스란히 불러와 썸네일로 표시하기 때문이다.

가장 좋은 방법은 애초에 게시글이 작성/수정될 때 썸네일로 첫번째 이미지를 추출하여,

적당히 작은 크기로(위 코드에서는 70px*70px) 별도의 썸네일 전용 이미지를 생성하는 것이다.

GD 라이브러리를 사용하면 가능하다.


댓글을 달아 주세요