У меня есть участок кода на PHP-сайте b2evo, который выполняет следующее:
$content = preg_replace_callback(
'/[\x80-\xff]/',
create_function( '$j', 'return "&#".ord($j[0]).";";' ),
$content);
Что делает этот раздел кода? Я предполагаю, что он удаляет символы ascii между 128 и 256, но я не уверен.
Кроме того, как есть, каждый раз, когда этот бит кода вызывается изнутри страницы, PHP выделяет, а затем не освобождает до 2 КБ памяти. Если функция вызывается 1000+ раз на странице (это может произойти), то страница использует дополнительные 2 МБ памяти.
Это вызывает проблемы с моим веб-приложением. Почему я теряю память, и как мне переписать это, чтобы я не получил утечку памяти?