2012-05-17 1 views
6

У меня есть функция, которая имеет:PHP - вложенная буферизация вывода

ob_start(); 
//Include of some files 
$content = ob_get_contents(); 
ob_end_clean(); 

В настоящее время в тех включает есть еще одна функция, которая использует тот же самый код, и они, кажется, конфликта. Можно ли их использовать так?

+0

Как они, кажется, конфликтовать? Вы получаете ошибки? –

+0

Вы не можете объявить одну и ту же функцию дважды, возможно, вы сможете обернуть определение своей функции каким-то образом, если (! Function_exists ('blah')) {function blah() {...}} – Martin

+0

что заставляет вас думать они конфликтуют? – goat

ответ

11

Попробуйте использовать буфер вывода, как это:

ob_start(); 
// your includes 
echo ob_get_clean(); 

Используйте это во всех ваших включает в себя, и вы не получите никаких ошибок

+0

У меня была аналогичная проблема, но по ошибке использовали ob_clean() вместо ob_end_clean() - имейте в виду их разницу! – besimple

5

Буферизация вывода должна быть укладываемой в стек, вам просто нужно совместить ob_start с ob_end_clean. См http://php.net/ob_start