포럼

메일 온지 5분도 안되서 올립니다~


솔직히 맨처음 카페24 고객센터에 백지현상 관련 글 올릴때

그다지 큰 기대는 안하고 약간 화난(?)마음에 올린거였는데

직접 전화도 주시고.. 메일로 진행상황도 계속 알려주시고...

적극적으로 문제 해결해주시는 것 보고 감동했습니다 ^^

사실 상황을 너무 크게 만든건 아닌가 하는 걱정도 했었습니다만 ^^ ;; 


아무튼 조만간 XE에서 패치 해주면 백지현상이 곧 해결될것 같습니다.

(이쪽 관련해서는 지극히 초보수준이여서 메일이 무슨내용인지는 모르겠네요 ㅋ.ㅋ)


같이 걱정해주시고 해결원인 찾으시느라 수고하신 

XE사용자 분들과 카페24 직원분들께 고개숙여 감사드립니다 ~







안녕하세요.

카페24 호스팅입니다.


추가적으로 확인된 내용이 있어 답변드립니다.


xe 의 회원 등급별  icon 붙여주기등의 addon 기능을 구현하기 위해서 원래 본문을 읽어들인 다음 회원 닉네임옆에 아이콘을 붙이는 코드를 삽입하도록 본문을 치환합니다.

                                                                                                                                                         

ì! ��때 preg_replace_callback 이라는 php 정규표현식 함수가 쓰이는데, 정규표현식이 내부적으로 사용하는 backtrack 이 일정 limit 이상으로 발생해서 NULL 로 리턴되었습니다.


즉, 원래 본문을 치환하면서 본문내용이 다 없어지고 NULL 이 되어버린것입니다.          

                                                                                                                                                         

일반적으로  preg_replace_callback 사용시에는, b! acktrack 이 limit 을 넘을때를 고려해서 예외처리ê! �€ 되�– �야 하는데, 추후에 그 부분이 들어가야 할것 같습니다.


php 에서 backtrack limit 는 pcre.backtrack_limit 로 설정하는데, 일단 php 5.2의 기본세팅값인 10만입니다.


일반적인 경우 10만이 작은양은 아닌데, 정규표현식의 패턴이 특이하고, 치환해야 할 본문의 내용이 커져서 그 한계를 넘은것 같습니다.


그래서 php 5.3 기본값 100만 보다 큰 200만으로 증설하였습니다.


해당 내용을 제로보드 xe 쪽에 전달하는 중이니 패치가 나올것 같습니다.


다시 한번 사용에 불편을 드려서 죄송합니다. 상당히 찾기 어려운 문제라서 시간이 걸리게 되었습니다.


추가로 설명하면 문제가 있던 파일의 코드는 다음과 같이 패치를 하시면 됩니다.

즉, 치환하기전 임시저장하고 치환할때 NULL 이 발생하면 ! 원래 본문을 돌려주도록 하였습니다.


addons/point_level_icon/point_level_icon.addon.php


   $output = preg_replace_callback('!<(div|span|a)([^\>]*)member_([0-9\-]+)([^\>]*)>(.*?)\<\/(div|span|a)\>!is', 'pointLevelIconTrans', $output);

   ==>

   $tmpout = preg_replace_callback('!<(div|span|a)([^\>]*)member_([0-9\-]+)([^\>]*)>(.*?)\<\/(div|span|a)\>!is', 'pointLevelIconTrans', $output);

   if ($tmpout!=NULL) $output = $tmpout;


addons/member_icon_print/member_icon_print.addon.php


    $output = preg_replace_callback('!<(div|span|a)([^\>]*)member_([0-9]+)([^\>]*)>(.*?)\<\/(div|span|a)\>!is', 'IconshopMemberIconPrint', $output);

==>

    $tmpout = preg_replace_callback('!<(div|span|a)([^\>]*)member_([0-9]+)([^\>]*)>(.*?)\<\/(div|span|a)\&g! t;!is', 'IconshopMemberIconPrint', $output);

  &nbs! p; if ($ tmpout!=NULL) $output = $tmpout;

?>


아래 url 에 가보면 backtrack 개수는 특이한 패턴의 경우,  치환해야 할 스트링 길이의 지수단위 O(2^n) 로 커져서 , 급격하게 커질 수 도 있다고 합니다.


http://www.regular-expressions.info/catastrophic.html

글쓴이 제목 최종 글
숭숭군 제이쿼리 중복 로드의 문제?  
큰돌♡ 디버깅 메시지를 보니 xe_counter 관련 오류가 종종 보이네요.  
큰돌♡ 테이블 구조(스키마)가 맞지 않을 때 처리 방법?  
엔키오 모바일페이지에서 사진첨부기능이 되었으면 합니다.!! [7] 2012.11.22 by 큰돌♡
LI-NA 1.5.3.4에서 맴버 모듈 모바일 지원이...  
paulryu03 이번 XE 1.5.4가 PHP 5.4 지원되는지 궁금합니다. [3] 2020.03.14 by paulryu03
미스촌닭 1.5.4 bata 오류 [1] 2020.03.14 by 도라미
이온디 모바일 에선 파일 첨부가 안되네요 [3] 2012.11.22 by 비밀얌
파파민 1.5.2.2 갤러리타입에서 링크이미지 썸네일 생성 되는지요? [5] 2012.11.22 by 일쌤
착한악마 오늘 네이버 분석모듈 스크립 오류 나오네요.  
숭숭군 자료실 쉬운설치 확인 부탁드립니다. [5] 2020.03.14 by KANTSOFT
trustech 자바스크립트로 만들어지는 methodCall 의 조건별로 블럭시킬수 있을까요? [2] 2012.11.20 by trustech
KANTSOFT [건의]xe게시판 특히 질답에 대해 구조를 바꾸어보았으면 합니다. [12] 2012.11.19 by KANTSOFT
맛있는우유 XE Wiki 는 1.5 대응 업데이트가 안되는지요? [1] 2012.11.19 by 닭장군
CM 저기 부산포럼이 새롭게 개편중입니다.  
고수군 XE 개발 진척상황 및 배포계획 아시는분?  
루트엘 홈페이지 이전후부터 개인정보가 변경이 안되네요 [14] 2012.11.16 by 윈컴이
루띠92 능력자가 이것좀 다시 만들었으면 좋겠당~~ 파일업로더.ㅋ [3] 2012.11.16 by KANTSOFT
Sulli 묻고 답하기 게시판 문제.. [2] file 2012.11.16 by 하늘종(ry
*별로* 메인 메뉴에서 다국어가 작동이 안될때가 있습니다.