라이브러리

[PHP_CONFIG] pcre.recursion_limit - PCRE 정규식 재귀 제한 설정




PHP CONFIG - pcre.recursion_limit

PHP CONFIG는 PHP의 설정 파일로, PHP의 동작을 조정하는 데 사용됩니다. pcre.recursion_limit은 PCRE(Perl-Compatible Regular Expressions) 라이브러리의 recursion_limit 옵션입니다. 이 옵션은 정규식에서 recursion(재귀) 깊이를 제한하는 데 사용됩니다.

pcre.recursion_limit의 기본값

pcre.recursion_limit의 기본값은 100입니다. 이 값은 PHP가 정규식에서 recursion을 허용하는 최대 깊이를 의미합니다. 만약 recursion이 더 깊게 허용되어야 하는 경우, 이 값을 증가시켜야 합니다.

pcre.recursion_limit의 설정

pcre.recursion_limit을 설정하려면 php.ini 파일을 편집하거나 php.ini 파일의 내용을 수정하는 명령어를 사용할 수 있습니다.

1. php.ini 파일 편집

php.ini 파일을 편집하려면, PHP 설치 폴더의 php.ini 파일을 열어야 합니다. 이 파일은 일반적으로 C:Windowsphp.ini (Windows) 또는 /etc/php.ini (Linux/MacOS) 에 위치합니다.

#hostingforum.kr
ini

   ; PCRE recursion limit

   pcre.recursion_limit = 100

   


위의 코드는 pcre.recursion_limit의 기본값을 100으로 설정합니다. 이 값을 변경하려면, 100을 원하는 값으로 수정하세요.

2. php.ini 파일의 내용 수정

php.ini 파일의 내용을 수정하려면, php.ini 파일을 열어 내용을 수정한 후 저장하세요.

#hostingforum.kr
bash

   php -i | grep pcre.recursion_limit

   


위의 명령어를 실행하여 pcre.recursion_limit의 현재 값을 확인할 수 있습니다.

예제

pcre.recursion_limit의 예제를 살펴보겠습니다.

#hostingforum.kr
php

<?php

$pattern = '/(a(b(c(d(e(f(g(h(i(j(k)))))))))))/';

$subject = 'abcdefghijk';



$matches = array();

preg_match($pattern, $subject, $matches);



print_r($matches);

?>



위의 예제는 PCRE 정규식에서 recursion을 사용하는 예제입니다. 정규식 `(a(b(c(d(e(f(g(h(i(j(k))))))))))`은 'a'에서 시작하여 'k'까지 recursion을 허용합니다. 만약 pcre.recursion_limit이 100보다 작다면, 이 정규식은 recursion limit을 초과하여 에러를 발생시킵니다.

pcre.recursion_limit의 설정에 따른 결과

pcre.recursion_limit의 설정에 따라 결과가 달라집니다.

* pcre.recursion_limit = 100
+ recursion이 허용된 깊이가 100이므로, 위의 예제는 recursion limit을 초과하여 에러를 발생시킵니다.
* pcre.recursion_limit = 200
+ recursion이 허용된 깊이가 200이므로, 위의 예제는 정상적으로 실행됩니다.

결론적으로, pcre.recursion_limit의 설정은 PCRE 정규식에서 recursion을 허용하는 깊이를 제어합니다. 이 옵션을 설정하여 recursion limit을 조정하여 원하는 결과를 얻을 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 394건 / 8 페이지

검색

게시물 검색