Як відключити буферизацію виводу

У процесі роботи php-скрипти можуть виводити результати по мірі виконання закладеного в них сценарію або накопичувати дані, чекаючи повного виконання сценарію і завершення роботи скрипта. Вибір одного з цих варіантів залежить від значення, присвоєного в налаштуваннях інтерпретатора php змінної, що відповідає за буферизацию виведення даних. Змінити його можна кількома способами.
Як відключити буферизацію виводу
Інструкція
1
Якщо відключити буферизацію виводу потрібно для всіх виконуваних на сервері або на сайті php-скриптів, найправильніше зробити це через файл php.ini. При запуску кожного скрипта інтерпретатор мови php читає налаштування з цього файлу конфігурації, тому помістити в нього директиву відключення буферизації виведення результатів роботи скриптів - найбільш оптимальне рішення. Відкрийте файл у текстовому редакторі і за допомогою діалогу пошуку знайдіть директиву з назвою output_buffering. Її значенням може бути як целочисленная, так і логічна (On або Off) змінна, тому замість присвоєного за замовчуванням значення впишіть Off або 0. Якщо цієї директиви немає в конфігураційному файлі, додайте в кінець записів додатковий рядок:

output_buffering = Off

2
При необхідності скасувати буферизацию виведення для скриптів окремої папки або групи вкладених папок, краще зробити це через файл htaccess. Знайдіть його в потрібному каталозі і відкрийте в текстовому редакторі. Якщо такого файлу ще немає, створіть новий. Директива, яку слід додати, аналогічна описаній в попередньому кроці, але перед нею треба помістити позначку про те, що мова йде про одну з налаштувань php. Повністю цей рядок має виглядати так:



php_flag output_buffering off

Створений файл htaccess помістіть у верхню папку ієрархії каталогів, для яких повинна виконуватися директива.

3
Щоб відключити буферизацію в одному окремо взятому php-скрипті, використовуйте одну з вбудованих функцій цієї мови. ob_get_flush () повертає поточний зміст буфера, потім обнуляє його і відключає буферизацію виводу. ob_end_flush () робить те ж саме, але поточний зміст буфера не повертає в викликала її змінну, а відправляє на пристрій виведення. Функція ob_end_clean () просто стирає поточні дані перед відключенням буферизації. Скориставшись однією з цих функцій, не забудьте знову включити буферизацию - для цього призначена функція ob_start ().

Увага, тільки СЬОГОДНІ!