preg_replace_callback 함수는 preg_replace()의 /e 수정자에 대한 대안을 제공합니다. , 향상된 유연성과 보안을 제공합니다. 이 전환을 이해하기 위해 이러한 수정의 목적과 사용법을 살펴보겠습니다.
정규식에서 역참조는 캡처된 부분에 액세스하는 데 사용됩니다. 일치하는 문자열의 2 역참조는 두 번째 캡처된 부분을 참조하며, 예에서 종종 ([a-z])로 표시됩니다. 이를 통해 대체 문자열 내에서 캡처된 값을 조작할 수 있습니다.
preg_replace_callback은 콜백을 사용하여 preg_replace()의 기능을 향상시킵니다. /e 수정자 대신 함수를 사용하세요. 이 콜백 함수는 일치하는 역참조가 포함된 배열을 인수로 받습니다.
기존 코드를 마이그레이션하려면 /e 대체 문자열을 다음과 같은 익명 콜백 함수로 변환할 수 있습니다. 그래서:
'strtoupper("2")'<br>
가 됩니다:
function($matches ) { return strtoupper($matches[2]); }<br>
여기서 $matches[2]는 원래 표현식의 2에 해당합니다.
$matches는 단지 콜백 함수의 매개변수 이름일 뿐입니다. 다른 이름을 자유롭게 선택할 수 있습니다. 또한 제공된 답변에 설명된 대로 명명된 함수 또는 일류 호출 가능 구문을 사용할 수 있습니다.
콜백 함수 내에서, 본질적으로 주변 범위의 변수에 액세스할 수 없습니다. 이를 극복하기 위해 익명 함수에서 use 키워드를 활용하여 필수 변수를 가져올 수 있습니다.
이러한 지침을 따르면 preg_replace() 코드를 보다 현대적이고 다양한 코드로 원활하게 마이그레이션할 수 있습니다. preg_replace_callback 함수.
위 내용은 `preg_replace()`의 `/e` 수정자에서 `preg_replace_callback()`으로 안전하게 마이그레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!