ob_start () скрывает вывод на экран

0

У меня проблема с функцией 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

Что я могу сделать, чтобы показать код, который отправляется на почту на веб-сайте?

Большое спасибо!!

  • 4
    Это именно то, что делает выходная буферизация. Он захватывает вывод и не будет отображаться после того, как вы _clean () его запустили. Если вы хотите, чтобы содержимое отправлялось на указанную почту и на страницу вывода, то вручную распечатайте () собранный вывод.
Теги:

2 ответа

0

Не очищайте буфер:

$report .= ob_get_contents();

Вы также можете ob_flush(); или ob_end_flush(); после этой строки, но это не имеет значения, так как весь вывод будет отображаться при завершении скрипта. Зависит от того, хотите ли вы продолжить буферизацию вывода или нет.

  • 0
    Спасибо! это делает
  • 0
    Хорошо, отметьте что-то ответили.
0

Попробуйте ob_get_flush(). Он очищает буфер и выводит результат. Альтернативно echo $report; сразу после ob_get_clean().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню