我在 b2evo PHP 网站上有一段代码,它执行以下操作:
$content = preg_replace_callback(
'/[\x80-\xff]/',
create_function( '$j', 'return "&#".ord($j[0]).";";' ),
$content);
这部分代码是做什么的?我的猜测是它会去除 128 到 256 之间的 ascii 字符,但我不能确定。
此外,就目前而言,每次从页面中调用这段代码时,PHP 都会分配然后不释放多达 2K 的内存。如果该函数在一个页面上被调用 1000 次以上(这可能发生),那么该页面会使用额外的 2MB 内存。
这导致我的 Web 应用程序出现问题。为什么我会丢失内存,以及如何重写它以免出现内存泄漏?