preg_replace
함수를 사용하여 문자열의 악센트를 바꾸려면 UTF-8을 사용하고 있습니다.preg_replace가있는 메모리 누수
I 메모리 누수 것 같다 무엇에 발생했다,하지만 난 근본 원인을 분리 할 수없는, 내 코드는 오히려 간단하다
$aToNoAccents
는
'~[Ą]~u' => 'A', '~[Ć]~u' => 'C',
같은 항목이 연관 배열이
preg_replace(
array_keys($aToNoAccents),
array_values($aToNoAccents),
$sText
);
. 내 스크립트 인쇄 위의 라인이 오류 :
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 3039 bytes)
은 분명히이 PHP를 위해 허용 된 메모리를 증가의 문제가 아니라, (1GB의 풋 프린트 방식으로 떨어져 내 응용 프로그램의 규모입니다). 또한이 라인은 문제없이 수천 번 실행되지만 재현하기 어려운 경우에는 오류가 발생합니다.
누구나 preg_replace 및 UTF-8 문자열의 메모리 문제를 알고 있습니까? 실제 매개 변수를 이러한 함수에 전달할 때 특별히주의해야합니까? 내가 수호신 - 패치
해당 정규식입니까? 그렇지 않으면'str_replace'를 대신 사용하여 더 잘 작동하는지 확인해야합니다. –
예, 어쩌면 정규식이 될 필요는 없습니다. 나는 그것을 시도하고있다 –