Присвоение содержимого переменной с помощью include / require_once - PullRequest
10 голосов
/ 16 октября 2011

Можно ли сделать как

$var = require_once('lol.php');

так что любой вывод HTML, который lol.php делает, попадет внутрь $var?

Я знаю о буферизации вывода, но есть ли какая-то специальная встроенная функция, которая уже делает это?

Ответы [ 2 ]

21 голосов
/ 16 октября 2011

$var = require_once('lol.php'); поместит возвращаемое значение файла только в $var. Если вы ничего не вернете, это будет просто null.

Если вы хотите вывод, вам нужно использовать буферизацию вывода:

ob_start();
require_once('lol.php');
$var = ob_get_clean();
7 голосов
/ 16 октября 2011

Назначение из вызова =include() даст вам только возможное значение return из этого сценария, а не какой-либо вывод.

Чтобы сделать это возможным, вам потребуется изменить сценарий включения для захватавывод:

 <?php
      ob_start();

      ...

      return ob_get_clean();
 ?>
...