사용되지 않는 preg_replace / e를 preg_replace_callback [duplicate]
PHP사용되지 않는 preg_replace / e를 preg_replace_callback [duplicate]
$result = preg_replace(
"/\{([<>])([a-zA-Z0-9_]*)(\?{0,1})([a-zA-Z0-9_]*)\}(.*)\{\\1\/\\2\}/iseU",
"CallFunction('\\1','\\2','\\3','\\4','\\5')",
$result
);
위의 코드는 PHP 5.5로 업그레이드 한 후 비추천 경고를 표시합니다 :
preg_replace_callback ()으로 코드를 대체하려면 어떻게해야합니까?
해결법
-
==============================
1.익명 함수를 사용하여 일치 항목을 함수에 전달할 수 있습니다.
익명 함수를 사용하여 일치 항목을 함수에 전달할 수 있습니다.
$result = preg_replace_callback( "/\{([<>])([a-zA-Z0-9_]*)(\?{0,1})([a-zA-Z0-9_]*)\}(.*)\{\\1\/\\2\}/isU", function($m) { return CallFunction($m[1], $m[2], $m[3], $m[4], $m[5]); }, $result );
더 빠르다는 것 외에도 문자열에서 큰 따옴표를 올바르게 처리합니다. / e를 사용하는 현재 코드는 큰 따옴표를 "\"로 변환합니다.
from https://stackoverflow.com/questions/19245205/replace-deprecated-preg-replace-e-with-preg-replace-callback by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP 연관 배열 중복 키 (0) | 2018.09.18 |
---|---|
PHP는 mysqli 준비 성명 (0) | 2018.09.18 |
"잘못된 매개 변수 번호 : 매개 변수가 정의되지 않았습니다"데이터 삽입 (0) | 2018.09.17 |
_GET의 최대 URL 매개 변수 크기 (0) | 2018.09.17 |
이중 콜론 (:)으로 비 정적 메서드 호출 (0) | 2018.09.17 |