포럼

메일 온지 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

글쓴이 제목 최종 글
데오필로 1.5.4 베타 사용중에 1.5.3.7 로 업데이트 가능한가요? [6] 2012.12.05 by 데오필로
쓰리공주 현재 XE를 사용하면서 개인적으로 필요 하다고 느껴지는 기능이 있다면? [14] 2012.12.04 by ToFinder
lightnsalt 젠드 서치 루씬에 한글형태소 분석기 붙일 수 있을까요?  
sorigongan 1.5.3.2.beta 위젯에서 대상모듈 선택이 되지 않습니다. [7] file 2012.12.03 by Garon
NA답답이 요즘 업데이트 너무 혼란스럽습니다. [17] 2012.12.03 by Garon
루트엘 압축파일 업로드가 원래 안됬던가요?... [3] 2012.12.02 by 루트엘
NA답답이 1.5.3.7업데이트 후 레이아웃 수정 잘 되나요...? [개발자님들 확인 좀 해 주세요] [5] 2012.12.02 by NA답답이
BluesPia[꾸야] 혹시 XE 1.7 로 올라가면 <!--@if--> 문도 사용할수 없게 되나요? [2] 2012.12.01 by 숭숭군
가을풍경 참 이상한 일이 벌어졌습니다.!!! [3] file 2012.11.30 by 퍼니엑스이
참빛바다 묻고 답하기 게시판도 검색 기능이 강화되면 좋겠습니다.  
오뎅궁물 1.5.3.4 업데이트 후 일부 레이아웃에서 에러가 발생하는군요. [24] 2020.03.14 by Garon
冠脫之夢 XE1.5.3.4에서 1.5.3.5 업데이트 후 이런 현상 생기시는 분? [1] file 2020.03.14 by 위드파트너
CMD Xzet 1.4.5.15 (XE 1.4.x 보안 패치) [27] 2012.11.27 by CMD
카이닉스 카페24, 간혈적인 백지현상 곧 해결된다고 합니다!!!! (백지현상 원인첨부) [26] 2012.11.26 by 배워서남준다
KIPIS 제로보드XE의 MSSQL 지원에 관해 [2] 2012.11.26 by Lotiony
冠脫之夢 외부페이지에 php구문을 품고있는 html파일 - 도움을 ㅡ,.ㅡ [3] 2020.03.14 by 冠脫之夢
숭숭군 제이쿼리 중복 로드의 문제?  
큰돌♡ 디버깅 메시지를 보니 xe_counter 관련 오류가 종종 보이네요.  
큰돌♡ 테이블 구조(스키마)가 맞지 않을 때 처리 방법?  
엔키오 모바일페이지에서 사진첨부기능이 되었으면 합니다.!! [7] 2012.11.22 by 큰돌♡