2026, 새로운 도약을 시작합니다.

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

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

Copy


// 정규식으로 img 태그의 src값만 추출

    $contents = $view['content'];

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

//    echo ($matches[1][0]);

    // 정규식으로 게시물내의 img 태그 유무 찾기

    if(preg_match("/]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $view['content']) == 0) {

        $matches[1][0] = G5_IMG_URL."/logo_p.png";

    }



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

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

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개

채택된 답변
+20 포인트

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다 ㅋㅋ
[code]
<?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 {
;
}
?>
[/code]

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

댓글을 작성하려면 로그인이 필요합니다.

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

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

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

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

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

Copy

위와 같이 처리해 보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

헉...
[code]
<?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 {
;
}
?>
[/code]

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





적용해봤는데...
훨신 간단하고...좋으네요....
잘 되셨다니 다행입니다.
즐코하세요. ^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고