我使用的preg_replace
函数替换字符串口音内存泄漏,我用UTF-8的工作。用了preg_replace
我已经发生在什么似乎是内存泄漏,但我无法找出根本原因,我的代码是相当简单:
preg_replace(
array_keys($aToNoAccents),
array_values($aToNoAccents),
$sText
);
其中$aToNoAccents
是一个像'~[Ą]~u' => 'A', '~[Ć]~u' => 'C',
项关联数组。 我的剧本打印此错误上述行:
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 3039 bytes)
显然,这是不增加所允许的内存PHP的事,(1Gb的足迹的方式把我的应用程序的规模)。此外,该行几千次没有问题地执行,但对于某些难以重现的情况,它会产生错误。
是任何人都知道的内存问题的preg_replace和UTF-8字符串? 我是否需要特别注意将实际参数传递给此功能?
我使用PHP 5.2.6-3用了Suhosin贴片
是那些regexps?否则,你应该使用'str_replace'来代替它,看看它是否更好? – 2010-02-26 10:47:03
是的,也许我不需要它们是正则表达式。我试一试 – 2010-02-26 11:22:23