게시글 본문에 이미지가 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><img src="'.$matches[1].'" class="thumb_img" alt=""></span>';
} else {
$thumb = '';
}
BEST한 방법은 아니다.
게시글 본문에 삽입된 이미지 파일의 용량에 상관 없이 썸네일로 표시하기 때문이다.
가장 좋은 방법은 애초에 게시글이 작성/수정될 때 썸네일로 첫번째 이미지를 추출하여,
적당히 작은 크기로(위 코드에서는 70px*70px) 별도의 썸네일 전용 이미지를 생성하는 것이다.
GD 라이브러리를 사용하면 가능하다.
'코딩 > PHP' 카테고리의 다른 글
PHP - sqlsrv 함수 사용 시 주의 사항 (0) | 2022.08.09 |
---|---|
URLDecoder: Illegal hex characters in escape (%) pattern (0) | 2016.08.29 |
[PHP] 삼항 연산자 (0) | 2015.06.01 |
php.ini 경로 확인 및 설정 방법 (0) | 2014.09.19 |
AjaxFileUpload - 파일 업로드 (0) | 2014.07.24 |