В процеса на работа php-скриптовете могат да показват резултати при изпълнението на скрипта или да натрупват данни, изчакващи пълното изпълнение на скрипта и завършването на скрипта. Изборът на една от тези опции зависи от стойността, присвоена в настройките на интерпретатора на php на променливата, отговорна за буферирането на изходните данни. Има няколко начина да го промените.
Инструкции
Етап 1
Ако трябва да деактивирате буферирането на изход за всички php скриптове, работещи на сървъра или на сайта, най-правилният начин да направите това е чрез файла php.ini. Когато стартира всеки скрипт, интерпретаторът на php език чете настройките от този конфигурационен файл, така че поставянето в него на директивата за деактивиране на буферирането на изхода на изхода на скриптовете е най-оптималното решение. Отворете файла във всеки текстов редактор и използвайте диалоговия прозорец за търсене, за да намерите директивата, наречена output_buffering. Стойността му може да бъде или цяло число, или логическа (Включена или Изключена) променлива, така че вместо стойността по подразбиране въведете Изключено или 0. Ако тази директива не е в конфигурационния файл, добавете допълнителен ред в края на записите:
output_buffering = Изключено
Стъпка 2
Ако трябва да деактивирате буферирането на изхода за скриптове на отделна папка или група подпапки, по-добре е да направите това чрез файла htaccess. Намерете го в желаната директория и го отворете в текстов редактор. Ако все още няма такъв файл, създайте нов. Директивата, която трябва да се добави, е подобна на тази, описана в предишната стъпка, но преди нея трябва да поставите отметка, че това е една от настройките на php. Целият ред трябва да изглежда така:
php_flag изходно_буфериране изключено
Поставете създадения файл htaccess в горната папка на йерархията на директориите, за която трябва да се изпълни директивата.
Стъпка 3
За да деактивирате буферирането в един php скрипт, използвайте една от вградените функции на този език. ob_get_flush () връща текущото съдържание на буфера, след това го нулира и изключва изходното буфериране. ob_end_flush () прави същото, но не връща текущото съдържание на буфера на променливата, която го е извикала, а го изпраща на изходното устройство. Ob_end_clean () просто изтрива текущите данни, преди да изключи буферирането. Когато използвате една от тези функции, не забравяйте да включите буферирането отново - функцията ob_start () е за това.