Спасибо за указание на возвращение!
ли добавить вывод print () в переменную?
У меня следующая ситуация:
У меня есть php-файл, который выглядит примерно так:
title.php
<?php
$content = '<h1>Page heading</h1>';
print($content);
У меня есть PHP-файл, который выглядит так:
page.php
<?php
$content = '<div id="top"></div>';
$content.= $this->renderHtml('title.php');
print($content);
У меня есть функцияrenderHtml()
:
public function renderHtml($name) {
$path = SITE_PATH . '/application/views/' . $name;
if (file_exists($path) == false) {
throw new Exception('View not found in '. $path);
return false;
}
require($path);
}
Когда я выкидываю переменную содержимого в page.php, она не содержит содержимого title.php. Содержимое title.php просто печатается при вызове, а не добавляется в переменную.
Надеюсь, понятно, что я пытаюсь сделать. Если нет, то извините, пожалуйста, скажите мне, что вам нужно знать. :)
Спасибо за вашу помощь!
PS
Я обнаружил, что уже был такой вопрос, как мой. Но это было в отношении Zend FW.
Как захватить вывод представления Zend вместо его фактического вывода
Однако я думаю, что это именно то, что я хочу сделать.
Как мне настроить функцию так, чтобы она вела себя так?
РЕДАКТИРОВАТЬ
Просто хотел поделиться финальным решением:
public function renderHtml($name) {
$path = SITE_PATH . '/application/views/' . $name;
if (file_exists($path) == false) {
throw new Exception('View not found in '. $path);
return false;
}
ob_start();
require($path);
$output = ob_get_clean();
return $output;
}