>  기사  >  백엔드 개발  >  PHP 일반 길이 제한

PHP 일반 길이 제한

巴扎黑
巴扎黑원래의
2016-11-23 15:12:582033검색

시나리오: 페이지 콘텐츠를 일치시키기 위해 정규식을 사용할 때(preg_match('/(.*)(.*)(.*)/Uis',$str)) 정상적으로 일치하는 경우도 있고 그렇지 않은 경우도 있습니다. 페이지 구조를 분석해 보면 변경 사항은 페이지 크기뿐입니다.

이유: PHP는 정규 표현식의 일치 길이를 제한합니다. phpinfo를 사용하면 다음을 볼 수 있습니다.

pcre.backtrack_limit 100000 100000
pcre.recursion_limit 100000 100000

I 100K밖에 없다는 것을 발견했는데, 웹페이지를 잡는다면 확실히 충분하지 않습니다. 실제로 php.ini에서 해당 설정을 지정하기만 하면 됩니다(또는 이 두 값의 크기를 변경하기만 하면 됩니다)

pcre.backtrack_limit=-1
pcre.recursion_limit=-1

첨부된 메모:

[Pcre]
Perl 호환 정규식 모듈
pcre.backtrack_limit = 100000
; PCRE 최대 역추적 단계 수입니다.
pcre.recursion_limit = 100000
PCRE의 최대 재귀 깊이입니다.
; 이 값을 너무 높게 설정하면 프로세스의 스택 공간이 소진되어 PHP가 중단될 수 있습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.