게시물에서 img 태그 src 값 추출(에디터로 업로드시, 파일로 업로드시) 채택완료
게시판에 img 태그를 추출해서 src값 다시 추출했습니다.
</p>
<p>// 정규식으로 img 태그의 src값만 추출
$contents = $view['content'];
preg_match_all("/<img[^>]*src=[\'\"]?([^>\'\"]+)[\'\"]?[^>]*>/", $contents, $matches);
// echo ($matches[1][0]);</p>
<p> // 정규식으로 게시물내의 img 태그 유무 찾기
if(preg_match("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $view['content']) == 0) {
$matches[1][0] = G5_IMG_URL."/logo_p.png";
}</p>
<p><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]); ?>"></p>
<p>
위 코드로 테스트 해보았는데요.
에디터로 이미지를 올렸을때는 정상작동하여
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때 첨부파일까지 검사해서 각 값을 채워주면 되지 않을까 합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
음 직접 소스를 작성하시지 마시구요.
그누보드의 라이브러리 파일 중에 /lib/thumbnail.lib.php 파일 7번째 라인을 보시면
get_list_thumbnail 이라는 함수가 있습니다.
이 함수는 게시물에서 첨부파일이 있다면 첨부파일 이미지를 없다면 내용에서 이미지를 추출하여 썸네일화 하는 함수인데요.
이것을 응용하시면 될 것으로 보입니다.
</p>
<p><?php</p>
<p>$og_img = get_list_thumbnail($bo_table, $wr_id, 600, 0); // 600은 출력 이미지의 가로 사이즈</p>
<p>?></p>
<p><meta property="og:image" content="<?php echo $og_img['src']; ?>"></p>
<p>
위와 같이 처리해 보세요.
답변에 대한 댓글 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]
이렇게 해버렸는데....
주신소스로 한번 해보겠습니다 감사합니다 ㅎ
적용해봤는데...
훨신 간단하고...좋으네요....
즐코하세요. ^^
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
[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 는 잘 들어가는데 말입니다..