[php] 에디터에서 작성된 이미지의 경로값 문의드립니다...

[php] 에디터에서 작성된 이미지의 경로값 문의드립니다...

QA

[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]);

헉!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
슈와이님...... 감사합니다.........

방금전 안그래도 저렇게 해서 해결됫나싶엇는데,
contents의 img가 복수일때 arra[0] [1] [2] ... src 경로값이 하나로 통일되어버리는 꼬임현상이 발견되어
이미지 배열상 정상적인 구현이 안됨을 발견했는데!!!!

슈와이님의 한!줄! 코드로 바꾸니 기똥차게 의도했던대로 정상작동이 됨을 확인했습니다!!!!!
대박입니다!!!

제가 \")([^\"]+)(\"[^>]+>)/i 요고 문법이 너무 복잡/어려워서 차마 손대지 못한 부분인데.

진짜 무한 감동입니다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
정말정말 감사합니다!!

역시...... 머리가 안돌아갈 땐 잠한숨자고나서 하는게 쵝오군요...
어제 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]);




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

회원로그인

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