[php] 에디터에서 작성된 이미지의 경로값 문의드립니다...
본문
gpath/bbs/view.php 120라인 부근
$view[content] = conv_content($view[wr_content], $html);
if (strstr($sfl, "content"))
$view[content] = search_font($stx, $view[content]);
/*$view[content] = preg_replace("/(\<img )([^\>]*)(\>)/i", "\\1 name='target_resize_image[]' onclick='image_window(this)' style='cursor:pointer;' \\2 \\3", $view[content]); this is orginal*/
$view[content] = preg_replace("/(\<img )([^\>]*)(\>)/i", "<a data-lightbox='roadtrip' href=''>\\1style='cursor:pointer;' \\2 \\3 </a>", $view[content]);
에디터에서 등록된 사진들을 클릭시 제이쿼리를 활용한 라이트박스로 뜨게 하기 위해서
view.skin.php에 라이트박스 관련 js, css를 설치해놓고
$view[content]의 <img~~ > 를 뿌려줄때 앞 뒤로 <a 태그로 감싸주어 에디터 컨텐츠(이미지)의 라이트박스 팝업효과를 구현하려 하고있습니다.
위에서 보시다시피..... 3시간째 빨깐 저 에디터작성 이미지컨텐츠 경로값을 구하려고 발버둥중이네요 ㅠㅠ...
preg_replace에서 \\2를 하면
src="http://siikkun.cafe24.com/gnuboard4/data/cheditor4/1402/d16db850610e163fe81941760e079e0d_1392899670.0774.png" width="595" height="392" alt="adfasdfadsf.png" style="border: none"
이렇게 전체가 출력되는데...
제가 필요한건
src=" ~ " 의 내용을 받아 a 태그 안에 href=" ~ " 로 뿌려줘야 하는데....
도저히 에디터에서 작성한 이미지의 경로값을 어떻게 뿌려줘야 할지.. 모르겟습니다..
답변 2
$view[content] = preg_replace("/(<img src=\")([^\"]+)(\"[^>]+>)/i", "<a data-lightbox='roadtrip' href='$2'>$1$2$3</a>", $view[content]);
역시...... 머리가 안돌아갈 땐 잠한숨자고나서 하는게 쵝오군요...
어제 3-4시간을 혼자 토나오게 구글링하며 짧은 php 가방끈으로 발악해도 안되던게.. 오늘은 카페에 앉아 10분만에 혼자해결했네요.....
혹시나 필요하신분이 있을까 해결 알고리즘 첨부합니다! :)
$view[content] = preg_replace("/(\<img )([^\>]*)(\>)/i", "<a href='' data-lightbox='roadtrip'>\\1style='cursor:pointer;' \\2 \\3</a>", $view[content]);
$doc = new DOMDocument();
$doc->loadHTML($view[content]);
$xpath = new DOMXPath($doc);
$src = $xpath->evaluate("string(//img/@src)");
$view[content] = preg_replace('/(\<a )([^\>]*)(\>)/i', '<a href="'.$src.'" data-lightbox="example-set">', $view[content]);
답변을 작성하시기 전에 로그인 해주세요.