Зарегистрируйте выбранные переменные для внешнего HTML-шаблона и получите результат в переменной - PullRequest
0 голосов
/ 29 января 2011

Я работаю над решением, которому нужно загрузить файл внешнего шаблона (html + php) и указать некоторые значения для печати через него.

Из соображений безопасности я не хочу разрешать доступ ко всем переменным в текущей области в шаблоне.

Я хочу, чтобы весь отображаемый результат из шаблона возвращался в виде строки, которая сохранялась в переменной, а не выводилась непосредственно в тело страницы.

1 Ответ

1 голос
/ 30 января 2011

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

// start output buffering, nothing will be printed out to the screen from now.
ob_start();

// this will not print to the screen as usual because of ob_start().
include('my/template/file.php');

// ob_get_contents() will return everything that should have been sent to the screen since ob_start was called.
$template_contents = ob_get_contents();

$final_contents = doMyStringReplaceFunction($template_contents, $arrayOfSubstitutions);

Вы также можете сделать это сразу, но с помощью обратного вызова on_start ();

ob_start('myCallbackFunction');
include('my/template/file.php');

// this will pass the contents of the include to myCallbackFunction() then echo to the screen.
ob_end_flush();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...