Т.е. вот такой код не будет работать, задача, которая решается здесь, реальная и звучит так "Нужно во всем тексте страницы подменить {cache} на какую-то строку, которая берется из базы и это значение нужно закешировать".
Что обязательно для повторения ошибки: - Должен быть подключен prolog_before.php, а не header и footer (т.е это ajax или cron обычно). - Кеш должен отсутствовать, т.е. должнен производиться процесс его сохранения (я в примере сделал случайный cacheId, чтобы наверняка это выполнялось).
Решение: - Отказаться от кеширования внутри OnEndBufferContent. - Заранее подготавливать кеш (вариант с OnBeforeEndBufferContent не сработает). - Внутри OnEndBufferContent проверять константу BX_BUFFER_SHUTDOWN, и если она есть, то пытаться получать данные из кеша через initCache и getVars, т.к. они не вызывают ошибку (т.е. просто не сохранять данные, но получить попробовать можно).
Подскажите по такой же ошибке. Появилось после повышения версии PHP.
В Апаче ошибка; <b>Fatal error</b>: Unknown: Cannot use output buffering in output buffering display handlers in <b>Unknown</b> on line <b>0</b><br />
В админке внизу страницы ошибка: Fatal error: Array and string offset access syntax with curly braces is no longer supported in /home/newhospital/newhospital.ru-shared/bitrix/modules/concept.kraken/classes/general/convert_class.php on line 421 [ErrorException] E_COMPILE_ERROR Array and string offset access syntax with curly braces is no longer supported (0) /home/newhospital/newhospital.ru-shared/bitrix/modules/concept.kraken/classes/general/convert_class.php:421