Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ob_start внутри ob_start
 
 автор: FaStY   (05.06.2009 в 18:08)   письмо автору
 
 

подскажите, делал свой шаблонизатор, шаблон подключается так
<?php
// здесь вполняеться всякий код
ob_start();
include_('1.html');
ob_get_clean();
// здесь вполняеться всякий код
?>

есть ли смысл превратить в это:
<?php
ob_start
();
// здесь вполняеться всякий код
ob_start();
include_('1.html');
ob_get_clean();
// здесь вполняеться всякий код
ob_get_clean();
?>

Будет ли от этого польза?

  Ответить  
 
 автор: Рома   (05.06.2009 в 19:53)   письмо автору
 
   для: FaStY   (05.06.2009 в 18:08)
 

Достаточно один раз в начале всего скрипта включить буферизацию, а в самом конце ее отключить, для того, чтоб в браузер не лезли никакие выводы инклудов.
(если конечно во включаемом файле не будет дана команда ob_get_clean();)

  Ответить  
 
 автор: Рома   (05.06.2009 в 20:00)   письмо автору
 
   для: FaStY   (05.06.2009 в 18:08)
 

если ваш файл выглядит так:
<?php 
// здесь вполняеться всякий код 
ob_start(); 
include_('1.html'); 
ob_get_clean(); 
// здесь вполняеться всякий код 
?>

а 1.html так:
<table width=\"100%\" align=\"center\" cellpadding=\"7\" cellspacing=\"0\" border=\"0\">
<tr><td abbr="" colspan="2" rowspan="2" align=\"left\"></td></tr>
<tr><td align=\"left\"></td></tr>
<tr><td align=\"left\" valign=\"middle\"></td></tr>
<tr><td align=\"left\"></td></tr>
<tr><td align=\"left\"></td><td></td></tr>
</table><span class="f2"></span>

то это равносильно тому, что изначально файл выглядел бы так:
<?php 
// здесь вполняеться всякий код 
ob_start(); 

<
table width=\"100%\" align=\"center\" cellpadding=\"7\" cellspacing=\"0\" border=\"0\">
<tr><td abbr="" colspan="
2" rowspan="2" align=\"left\"></td></tr>
<tr><td align=\"left\"></td></tr>
<tr><td align=\"left\" valign=\"middle\"></td></tr>
<tr><td align=\"left\"></td></tr>
<tr><td align=\"left\"></td><td></td></tr>
</table><span class="
f2"></span>

ob_get_clean(); 
// здесь вполняеться всякий код 
?>

  Ответить  
 
 автор: FaStY   (06.06.2009 в 00:00)   письмо автору
 
   для: Рома   (05.06.2009 в 20:00)
 

Это понятно, но дело в том, что у меня свой фрэймфорк, и там индекс выглядит так:
<?php
// инклюдим файлы
print framework::load();

?>

Этот метод load он вызывает модуль, в конце которого вызывается функция display():
<?php
function display(){
       
ob_start();       
        include (
$path);
       
        return 
ob_get_clean();
}
?>

будет ли смысл делать такое с нашим индексом:
<?php
ob_start();
// инклюдим файлы
print framework::load();
ob_get_clean();

?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования