В чем разница между значениями 1 и 4096 для output_buffering в php.ini - PullRequest
0 голосов
/ 11 февраля 2019

Что означает значение переменной output_buffering ini в php.ini?На нашем старом сервере было установлено значение 1

output_buffering = 1

. С этим параметром я мог позвонить ob_clean();, и это сработало как чудо.Однако мы переместили нашу систему на новый сервер, где буферизация вывода была установлена ​​на 4096:

output_buffering = 4096

При этом вызов ob_clean(); не имел никакого эффекта, пока я явно не начал самначало моего кода с ob_start(); (кажется, что на другом сервере с output_buffering = 1 он был вызван неявно).

1 Ответ

0 голосов
/ 11 февраля 2019

output_buffering логическое / целое число

Вы можете включить буферизацию вывода для всех файлов, установив для этой директивы значение «Вкл».Если вы хотите ограничить размер буфера определенным размером - вы можете использовать максимальное количество байтов вместо «Вкл» в качестве значения для этой директивы (например, output_buffering = 4096).Эта директива всегда выключена в PHP-CLI.

С Руководство по PHP

Что это означает:

  • Aзначение 0 равно false / off, поэтому буферизация вывода отключена.
  • Значение 1 истинно / включено, так что выходная буферизация включена и не имеет установленного ограничения (по крайней мере, в этой области) на максимальный размер буфера.
  • Значение >1 - это максимальное количество байтов для настраиваемого размера выходного буфера.

Поэтому в конфигурации PHP.ini приведены следующие варианты:

    output_buffering= 0 / 1 / 1+
...