Php ob_get_contents() возвращает пустую строку, если включаемый файл во время буферизации не мал

Допустим, у меня есть файл, состоящий из 5 строк текста, и каждая строка имеет 50 символов. Содержимое выходного буфера возвращается правильно, но если у меня есть файл, содержащий 100 строк текста, выходной буфер возвращает пустую строку (строка со значением null).

Я делаю это так:

ob_start();
include "file.php"
$string = ob_get_contents();
ob_end_clean();

ИЛИ ЖЕ

$string = $this->load->view('view', $data, true);

Я делаю это внутри codeigniter, если это имеет какое-либо значение.

Я попытался загрузить файл с помощью функции load->view средства воспламенения кода с третьим параметром, установленным в true, результат тот же. Попытался также дать ob_start() большое число -> ob_start(9999999); тот же результат;

3 ответа

Я бы предложил использовать ob_get_flush, чтобы убедиться, что ничего не хранится во внутреннем буфере.

Весьма маловероятно, но что это вместо вашего кода печатать?

require_once( "file.php" );

Просто чтобы убедиться, что материал в file.php не окружен <?php /** **/ php?>,

И что

echo ob_get_level();

вывод перед вашим кодом? Не должно быть актуально, если другая буферизация выходных данных уже включена, но...

Вам просто нужно добавить несколько строк в index.php (корень CodeIgniter)

ob_start();

/ * * ----------------------------------------------- ---------------- * ОКРУЖАЮЩАЯ СРЕДА *------------ +

require_once BASEPATH.'core/CodeIgniter.php';

$data = ob_get_contents();
ob_clean();
echo $data; /// or anything else

это все!

Почему вы используете функции ob для получения содержимого файла? Почему не file_get_contents?

Другие вопросы по тегам