Есть ли способ получить выход из PHP Virtual()?Сохранить вывод PHP Virtual() в String
ob_start()
virtual();
ob_end_flush();
в моем случае не работает.
Есть ли способ получить выход из PHP Virtual()?Сохранить вывод PHP Virtual() в String
ob_start()
virtual();
ob_end_flush();
в моем случае не работает.
За ручной http://php.net/manual/en/function.virtual.php:
Чтобы запустить подзапрос, все буферы прерываются и продували в браузере, ожидающие заголовки посылаются тоже.
Один из способов, что я могу думать о том, чтобы создать отдельный файл и загрузить:
// virtual.php
virtual('/path/to/whatever');
Тогда, куда вы хотите, чтобы получить содержимое, загрузите его:
// other.php
$string = file_get_contents('http://www.example.com/path/to/virtual.php');
Вы используете obj_end_flush()
, который останавливает буферизацию вывода и удаляет буферизованный вывод. То, что вы, вероятно, хотите, это:
ob_start();
virtual();
$output = ob_get_clean();
$output
содержит буферизованный выход, потому что ob_get_clean()
останавливает буферизацию и возвращает буферизованный вывод вместо того, чтобы удалить его.
Буферизация вывода не работает с 'virtual()' – AbraCadaver
Отличное решение, работает для меня! Большое спасибо! – kasoft