Сохранить вывод PHP Virtual () в строку

1

Есть ли способ получить выход из PHP Virtual()?

ob_start()
virtual();
ob_end_flush(); 

в моем случае не работает.

Теги:

2 ответа

1
Лучший ответ

В руководстве 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');
  • 0
    Отличное решение, у меня работает! Большое спасибо!
0

Вы используете obj_end_flush() который останавливает буферизацию вывода и удаляет буферизованный вывод. То, что вы, вероятно, захотите, это следующее:

ob_start();
virtual();
$output = ob_get_clean();

$output содержит буферный вывод, потому что ob_get_clean() останавливает буферизацию вывода и возвращает буферный вывод вместо его удаления.

Руководство пользователя PHP ob_end_flush()

Руководство PHP ob_get_clean()

  • 0
    Буферизация вывода не работает с virtual()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню