뷰페이지에서의 이미지 경로 추출하는 정규식 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

뷰페이지에서의 이미지 경로 추출하는 정규식 정보

뷰페이지에서의 이미지 경로 추출하는 정규식

본문

스킨을 조물락 거리다가 난관에 부딪혀서 고수님들의 도움을 요청해봅니다.(^^)(__)

외부에 있는 이미지를 게시판에 삽입했습니다.
그리고 뷰페이지에서 그 외부 이미지의 파일 경로를 표시하려 합니다.

어찌어찌 온갖 스킨들을 다 다운받아 비슷한 유형의 소스를 건지긴 했는데
문법이나 머 이런걸 모르니 진도가 안나가네요.

preg_match_all('/<img[^>]+>/i', $view[content], $result);
if (count($result) > 0) {
	foreach($result[0] as $img_tag) {
		preg_match("/src\=[\"\']?([^\"\'\s\>]+)/i", $img_tag, $matches);
		$out_images = str_replace("http://".$http_host, $g4['path'], $matches[1]);

	}
}


어찌어찌 저 소스를 얻어서 적용해봤는데...

맨끝에 echo "$out_images"; 이렇게 해보니
3개의 이미지가 있다면 한개의 이미지 경로만 추출됩니다.
3개의(혹은 다수의) 이미지 경로를 전부 다 추출하려면 어찌해야 하나요?
  • 복사

댓글 전체

$out_images = str_replace("http://".$http_host, $g4['path'], $matches[1]); //한개

 $out_images .= str_replace("http://".$http_host, $g4['path'], $matches[1]);//전부 합치기

를 응용해보세요
외부의 이미지라면.. 그누보드가 설치된 곳이 아닌 다른홈페이지의 이미지인거죠?
$out_images = str_replace("http://".$http_host, $g4['path'], $matches[1]);
여기서 본인의 도메인과 그누보드 경로는 빼야겠군요..
그리고 맨 마지막에만 $out_images를 출력하셔서 하나만 나온거구요..
출력 자체는 foreach문 내부에서 해주셔야 모든 결과를 보실 수 있었을겁니다.
//$pattern = "/src=[\"']?(http:\/\/[^\"'>]+)[\"']?[^>]+>/i"; // img src가 http:// 로 시작될때
$pattern = "/src=[\"']?([^\"'\s>]+)[\"'\s]?/i"; // 전체 img src 찾을때
preg_match_all('/<img[^>]+>/i', $view[content], $result);
if (count($result) > 0) {
    foreach($result[0] as $img_tag) {
        preg_match($pattern, $img_tag, $matches);
        echo "이미지경로 : ".$matches[1];
    }
}
이런식으로요.. (정규식부분 버그있는거 같아서 찔끔 수정했습니다)

혹시나 경로를 각 이미지의 하단에 바로 출력하신다던지 하려면 좀 달라지겠지요.
원래 이미지 출력하는건 그대로 출력하고 줄바꿔서 이미지경로 주소를 삽입해서 출력하고자 한다면..

//$pattern = "/<img[^>]*src=[\"']?([^\"'\s>]+)[\"'\s]?[^>]*>/i"; // 전체 img src 찾을때
$pattern = "/<img[^>]*src=[\"']?(http:\/\/[^\"'\s>]+)[\"'\s]?[^>]*>/i"; // img src가 http:// 로 시작될때
$view[content] = preg_replace( $pattern, "\\0<br />이미지경로 : \\1", $view[content] );

이런식이 되려나요.. 얼추 테스트는 해봤습니다만.. 정규식에 약해요 ㅜㅜ
그냥 이미지경로만 몰아서 출력하려고 하신거라면.. 상당한 오바를 한;;
먼지손님 늦게나마 글 남겨 주시고 감사드립니다.
제가 질문한 내용은
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=27575
위 링크에서 마지막에 질문한 내용을 적용하기 위한 것이 었습니다.

답변에 다시한번 감사드립니다.(__)
$pattern = "/<img[^>]*src=[\"']?([^\"'\s>]+)[\"'\s]?[^>]*>/i";
$view[rich_content] = preg_replace( $pattern, "<a href='\\1' rel='photo'>\\0</a>", $view[rich_content] );
원하시는게 이게 맞는건가요? 이미지를 앵커로 쌓아주고 링크는 이미지경로를 그대로 넣어주는..?
© SIRSOFT
현재 페이지 제일 처음으로