제목 | preg_replace(): Compilation failed: regular expression is too large at offset | ||
---|---|---|---|
글쓴이 | 건곤대나이 | 작성시각 | 2014/11/21 15:44:40 |
|
|||
안녕하세요. ci 에러는 아닌것 같습니다만 게시판에 글저장중에 저런 오류가 왜 나는지 아시거나 해결하신분 계신가요? |
|||
다음글 | 안드로이드에서 EditText통해 입력된 값을... (3) | ||
이전글 | global_xss_filtering 를 유동적으로 사... (1) | ||
taegon
/
2014/11/24 09:47:39 /
추천
0
|
||||||
건곤대나이
/
2014/11/24 22:10:17 /
추천
0
답변 감사합니다.
그런데 그렇게 크지 않는 다음 문장을 넣어도 에러메세지를 출력합니다. ******************************************************************************* MariaDB로 마이그레이션 후에 다음과 같은 에러 메시지가 발생하는 경우가 있습니다. mysql_connect(): Headers and client library minor version mismatch. Database 의 Client API Library 버전과 Header 버전이 일치하지 않아 발생하는 문제입니다. DB 자체는 정상적으로 굴러가지만 지속적으로 에러메시지를 뱉어냅니다. 자신의 DB API버전을 확인하려면 커맨드 라인이 다음과 같이 입력합니다.
저같은 경우에는 버전정보가 다음과 같이 출력되었습니다. Client API header version만 다릅니다.
해결방법은 php mysql 드라이버를 삭제하고 mysqlnd 드라이버를 설치하면 됩니다.
드라이버 설치를 마치고 API 버전을 다시 확인하면 mysqldn으로 드라이버가 변경된 것을 확인하실 수 있습니다. 또한 더 이상 에러메세지가 발생하지 않습니다. <h4>A PHP Error was encountered</h4> <p>Severity: Warning</p> <p>Message: preg_replace(): Compilation failed: regular expression is too large at offset 43740</p> <p>Filename: core/Security.php</p> <p>Line Number: 805</p>************************************************************************************************** |
||||||
taegon
/
2014/11/24 23:32:10 /
추천
0
일단은 core/Security.php를 열어서 805라인에서 정규식으로 처리하는 부분에 데이터가 어떻게 들어가는지 로그를 찍어보셔야 할 것 같습니다. 재가 가지고 있는 2.1대 버전의 경우에는
$str = preg_replace('#(&\#?[0-9a-z]{2,})([\x00-\x20])*;?#i', "\\1;\\2", $str); 이 부분인데 입력하는 부분인 $str이 정말 크게 들어가는지 확인해 보시고 php의 가용 메모리를 임시로 50M정도로 변경해보세요. |
||||||
글의 크기를 확인해보시고 php에서 메모리 설정을 늘려보세요.