2016-04-13 4 views
-5

Будете ли вы любезны помочь мне с любой возможной информацией об этой ошибке? причины? авторизоваться? где искать/начинать?Ошибка буферизации PHP <unknown> в строке 0

Cannot use output buffering in output buffering display handlers in <**Unknown**> on line **0** 

Пример кода:

function test($b) { return _strrev($b); } 

ob_start("test"); 
echo "123"; 
ob_end_flush(); 

Информация:

  • Это CentOS 6.7
  • Это PHP PHP 5.5.32 (CLI)
  • Это НЕ Wordpress
  • Это простой PHP-файл с ps eudo код (выше)
  • Нет кэширования, не лакокрасочный, не Nginx, никаких пользовательских заголовков

Благодаря

+2

Некоторый код будет полезным – RiggsFolly

+0

я understan d ваш подход, но в моем случае это абсолютно неуместно. Пример: 'ob_start (" test "); эхо "123"; ob_end_flush(); ' –

+0

Итак, где ваша функция' test'? – RiggsFolly

ответ

3

В попытке сделать этот вопрос какой-то польза другим я резюмировать раздел комментариев в форму ответа.

Оказывается, что если вы сделаете ошибку кодирования в функции обратного вызова, используемой ob_start он генерирует эти несколько бесполезных сообщения об ошибке

В тестировании я совершенно случайно сделал глупую ошибку при внесении изменений в Funtion обратного вызова, показанном на вопрошающем я закодированы

<?php 
function test($b) { 
    return str-replace('2', 'XXX', $b); 
} 

ob_start("test"); 
echo "123"; 
ob_end_flush(); 

Обратите внимание на орфографические ошибки функции str_replace().

Это вызвало ошибку

Fatal error: Unknown: Cannot use output buffering in output buffering display handlers in Unknown on line 0

Получается, что PHP не может сообщать об ошибках во время выполнения в ob_start обратного вызова Funtion. Вместо этого он должен по умолчанию общей ошибки вдоль линий Ой, что больно

Может быть, один из нас должен сообщить об этом как PHP Bug

После некоторого более тестирования, это Senario ошибка создает значимую ошибку в PHP 7.0.5

Notice: Use of undefined constant str - assumed 'str' in tst.php on line 3

Fatal error: Uncaught Error: Call to undefined function replace() in tst.php:3

так что это может быть исправлена, но все предыдущие версии PHP, то есть 5,4/5,5/5,6 производства сообщение об ошибке бесполезные

+0

Это не ошибка компиляции, это ошибка времени выполнения: ** Вызов для неопределенной функции replace() ** – Barmar

+0

Вы должны отредактировать вопрос, чтобы показать плохой код в функции 'test', чтобы ошибка была воспроизводимой. – Barmar

+0

@Barmar Скажите собеседнику изменить его вопрос – RiggsFolly

Смежные вопросы