게시물에서 img 태그 src 값 추출(에디터로 업로드시, 파일로 업로드시)

게시물에서 img 태그 src 값 추출(에디터로 업로드시, 파일로 업로드시)

QA

게시물에서 img 태그 src 값 추출(에디터로 업로드시, 파일로 업로드시)

본문

게시판에 img 태그를 추출해서 src값 다시 추출했습니다.


// 정규식으로 img 태그의 src값만 추출
    $contents = $view['content'];
    preg_match_all("/<img[^>]*src=[\'\"]?([^>\'\"]+)[\'\"]?[^>]*>/", $contents, $matches);
//    echo ($matches[1][0]);
    // 정규식으로 게시물내의 img 태그 유무 찾기
    if(preg_match("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $view['content']) == 0) {
        $matches[1][0] = G5_IMG_URL."/logo_p.png";
    }
<meta property="og:type" content="website">
<meta property="og:title" content="<?php echo $view['subject']; ?>">
<meta property="og:url" content="<?php echo $_SERVER['REQUEST_URI']; ?>">
<meta property="og:description" content="<?php echo cut_str(strip_tags($write['wr_content']), 200) ?>">
<meta property="og:image" content="<?php echo($matches[1][0]); ?>">

 

위 코드로 테스트 해보았는데요.

에디터로 이미지를 올렸을때는 정상작동하여

meta의 og:image content 가 정상적으로 채워졌으나,

 

파일로 이미지를 올렸을때는

위의 코드 if 문이 false 가 되어 기본 이미지가 src 값이

mata의 og:image content 에 들어가 버립니다...!

 

본문에 무조건 img 태그가 있다면

meta의 og:imgage content 가 img 태그의 src 값으로

채워지게 할 수 있을까요?

 

DB보니까 파일로 이미지를 올렸을때는 wr_content 에 저장이 안되더라구요;

흡 ㅠ

 

 

리스트에 파일아이콘은....

파일로 올렸을때(확장자가 gif,jpg,png, ico, html, hwp, ppt 등등)

다양하니 아이콘이 출력되는게 맞고

이미지로 에디터로 첨부했을때는 gif,jpg,png 등만 첨부가능하니

아이콘이 안나오는게 맞는것 같습니다 ㅎ

아이콘 자체 의미가 파일 이니까요ㅎ

 

 

 

이 질문에 댓글 쓰기 :

답변 2

파일로 했을때는 첨부 형태로 되어서 그런듯 보입니다.

$content쪽에는 없을테니 false가 떨어질테고요. 그렇다면 false때 첨부파일까지 검사해서 각 값을 채워주면 되지 않을까 합니다.

 

감사합니다 ㅋㅋ


<?php 
	// 정규식으로 img 태그의 src값만 추출
	$contents = $view['content'];
	preg_match_all("/<img[^>]*src=[\'\"]?([^>\'\"]+)[\'\"]?[^>]*>/", $contents, $matches);

	// 정규식으로 게시물내의 img 태그 유무 찾기
	// 만약 이미지가 없다면
	if(preg_match("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $view['content']) == 0) {
		// 만약 첨부파일에 이미지가 있다면
		if($view['file'][0]['file']){
			$matches[1][0] = G5_DATA_URL."/file/".$bo_table."/".$view['file'][0]['file'];
		} else {
			$matches[1][0] = G5_IMG_URL."/logo_p.png";
		}
	} else {
		;
	}
?>


로 일단 했습니닷.
근데 캐시때문인지 공유시 이미지를 못가져오네요;
og:image content 는 잘 들어가는데 말입니다..

음 직접 소스를 작성하시지 마시구요.

그누보드의 라이브러리 파일 중에 /lib/thumbnail.lib.php 파일 7번째 라인을 보시면 

get_list_thumbnail 이라는 함수가 있습니다.

이 함수는 게시물에서 첨부파일이 있다면 첨부파일 이미지를 없다면 내용에서 이미지를 추출하여 썸네일화 하는 함수인데요.

이것을 응용하시면 될 것으로 보입니다.

 


<?php
$og_img = get_list_thumbnail($bo_table, $wr_id, 600, 0); // 600은 출력 이미지의 가로 사이즈
?>
<meta property="og:image" content="<?php echo $og_img['src']; ?>">

 

위와 같이 처리해 보세요.

헉...


<?php 
	// 정규식으로 img 태그의 src값만 추출
	$contents = $view['content'];
	preg_match_all("/<img[^>]*src=[\'\"]?([^>\'\"]+)[\'\"]?[^>]*>/", $contents, $matches);

	// 정규식으로 게시물내의 img 태그 유무 찾기
	// 만약 이미지가 없다면
	if(preg_match("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $view['content']) == 0) {
		// 만약 첨부파일에 이미지가 있다면
		if($view['file'][0]['file']){
			$matches[1][0] = G5_DATA_URL."/file/".$bo_table."/".$view['file'][0]['file'];
		} else {
			$matches[1][0] = G5_IMG_URL."/logo_p.png";
		}
	} else {
		;
	}
?>


이렇게 해버렸는데....
주신소스로 한번 해보겠습니다 감사합니다 ㅎ





적용해봤는데...
훨신 간단하고...좋으네요....

답변을 작성하시기 전에 로그인 해주세요.
전체 123,536 | RSS
QA 내용 검색

회원로그인

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