라이브러리

[PHP_CONFIG] pcre.backtrack_limit - PCRE 정규식 백트래킹 제한 설정




PHP CONFIG 에서 pcre.backtrack_limit는 PCRE (Perl-Compatible Regular Expressions) 엔진의 백트랙 제한을 의미합니다. 백트랙은 정규식 매칭 시에 패턴이 매칭되지 않을 때, 이전 상태로 돌아가서 다시 시도하는 과정을 말합니다. 이 제한은 PHP가 정규식 매칭 시에 사용할 수 있는 백트랙의 최대 수를 지정합니다.

기본적으로 PHP의 pcre.backtrack_limit는 100000으로 설정되어 있습니다. 이 값을 변경하면 PHP가 정규식 매칭 시에 사용할 수 있는 백트랙의 최대 수를 변경할 수 있습니다.

예를 들어, 다음 코드는 pcre.backtrack_limit를 1000으로 설정한 후, 정규식 매칭을 시도하는 예제입니다.

#hostingforum.kr
php

ini_set('pcre.backtrack_limit', 1000);



$pattern = '/(a+){1000}/';

$string = str_repeat('a', 1000);



if (preg_match($pattern, $string, $matches)) {

    echo "정규식 매칭 성공
";

} else {

    echo "정규식 매칭 실패
";

}



이 예제에서는 pcre.backtrack_limit를 1000으로 설정한 후, `(a+){1000}` 형식의 정규식을 사용하여 1000개의 'a' 문자열을 매칭하는 시도를 합니다. 이 정규식은 1000개의 'a' 문자열을 매칭할 때까지 백트랙을 반복합니다.

만약 pcre.backtrack_limit가 1000보다 작다면, 정규식 매칭 시도 시에 "Warning: preg_match(): The PCRE regular expression pattern contains a backtracking control verb that occurs before an unlimited repeat in a subpattern that can match an empty string" 경고 메시지가 출력됩니다.

또한, pcre.backtrack_limit를 너무 낮게 설정하면, PHP가 정규식 매칭 시에 사용할 수 있는 백트랙의 최대 수가 부족하여, 정규식 매칭이 실패할 수 있습니다.

따라서, pcre.backtrack_limit를 설정할 때는, PHP가 정규식 매칭 시에 사용할 수 있는 백트랙의 최대 수를 충분히 설정해야 합니다.

pcre.backtrack_limit를 설정하는 방법

pcre.backtrack_limit를 설정하는 방법은 다음과 같습니다.

1. `php.ini` 파일을 편집합니다.
2. `pcre.backtrack_limit` 설정을 변경합니다.
3. PHP를 재시작합니다.

또는, PHP를 실행할 때 `ini_set` 함수를 사용하여 pcre.backtrack_limit를 설정할 수 있습니다.

#hostingforum.kr
php

ini_set('pcre.backtrack_limit', 1000);



pcre.backtrack_limit의 기본값

pcre.backtrack_limit의 기본값은 100000입니다.

pcre.backtrack_limit의 최소값

pcre.backtrack_limit의 최소값은 1입니다.

pcre.backtrack_limit의 최대값

pcre.backtrack_limit의 최대값은 PHP의 메모리 제한에 따라 달라집니다. 일반적으로, pcre.backtrack_limit의 최대값은 1000000 이상입니다.

pcre.backtrack_limit의 영향

pcre.backtrack_limit의 영향은 다음과 같습니다.

* 정규식 매칭 시에 사용할 수 있는 백트랙의 최대 수를 변경합니다.
* PHP가 정규식 매칭 시에 사용할 수 있는 백트랙의 최대 수를 충분히 설정해야 합니다.
* pcre.backtrack_limit를 너무 낮게 설정하면, PHP가 정규식 매칭 시에 사용할 수 있는 백트랙의 최대 수가 부족하여, 정규식 매칭이 실패할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 394건 / 8 페이지

검색

게시물 검색