我使用的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