У меня проблема с функцией ob_start(). Я разрабатываю веб-сайт, где я представляю php файл, содержащий отчет, который я позволяю пользователю отправлять его себе по почте. Проблема в том, что когда я использую ob_start() и ob_get_clean(), чтобы определить, что я хочу отправить, весь код, который находится между этими двумя функциями, не отображается пользователю на веб-сайте.
<?php
$report='';
//the code here is visible in the website
ob_start(); //the code from here is going to the email and is not visible
.
.
.
$report.=ob_get_clean(); //after this all the rest of the code is visible
Что я могу сделать, чтобы показать код, который отправляется на почту на веб-сайте?
Большое спасибо!!
Не очищайте буфер:
$report .= ob_get_contents();
Вы также можете ob_flush();
или ob_end_flush();
после этой строки, но это не имеет значения, так как весь вывод будет отображаться при завершении скрипта. Зависит от того, хотите ли вы продолжить буферизацию вывода или нет.
Попробуйте ob_get_flush()
. Он очищает буфер и выводит результат. Альтернативно echo $report;
сразу после ob_get_clean()
.