b2evo PHP サイトに、次のことを行うコードのセクションがあります。
$content = preg_replace_callback(
'/[\x80-\xff]/',
create_function( '$j', 'return "&#".ord($j[0]).";";' ),
$content);
コードのこのセクションは何をしますか? 私の推測では、128 から 256 の間の ASCII 文字が取り除かれていると思いますが、確かではありません。
また、現状では、このコードがページ内から呼び出されるたびに、PHP は最大 2K のメモリを割り当ててから解放しません。関数がページで 1000 回以上呼び出されると (これが発生する可能性があります)、そのページは余分に 2MB のメモリを使用します。
これにより、Web アプリケーションで問題が発生しています。なぜ私はメモリを失っているのですか? また、メモリ リークが発生しないようにこれを書き直すにはどうすればよいですか?