Die "guten" alten Zeiten...
bearbeitet von ursus contionabundo> > > und bei PHP **immer** dran denken: Sobald das erste Byte vom Body geschrieben wurde, lässt sich an den Headern nichts mehr tun.
> >
> > Das "immer" galt in den "guten" alten Zeiten. Seit PHP (wohl) Version 5.6 braucht es jedenfalls für PHP, welches nicht als CLI ausgeführt wird, im folgenden Beispiel das `ob_start()` nicht mehr:
>
> Das stimmt so absolut auch wieder nicht.
Doch. Das von mir im Zitat absichtlich betonte "immer" stimmt absolut nicht.
> Wenn du aber mal nach oben rollst, siehst du, dass der Default-Wert 0 ist, und damit das Output-Buffering ausgeschaltet ist. Ist das nicht widersprüchlich?
Widersprüchlich ist die Dokumentation:
In meiner, von mir nicht geänderten Fassung von /etc/php/7.3/apache2/php.ini
~~~
; output_buffering
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
~~~
und, weiter unten:
~~~
; Note: Output buffering can also be controlled via Output Buffering Control
; functions.
; Possible Values:
; On = Enabled and buffer is unlimited. (Use with caution)
; Off = Disabled
; Integer = Enables the buffer and sets its maximum size in bytes.
; Note: This directive is hardcoded to Off for the CLI SAPI
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering = 4096
~~~
Das entspricht z.B. auch dem [Originaldownload "php-7.3.3.tar.bz2"](http://php.net/get/php-7.3.3.tar.bz2/from/a/mirror), darin der "php.ini-production" in den Blöcken ab den Zeilen 126 bzw. 203.
Soll heißen, die Entwickler benutzen den im Programm selbst bestimmten default-value "off" in den mit gelieferten ini-Dateien selbst gerade nicht und überschreiben ihn - übrigens auch in der "php.ini-development".
Das *"This directive is hardcoded to Off for the CLI SAPI"* hatte ich mit anderen Worten erwähnt.
Die "guten" alten Zeiten...
bearbeitet von ursus contionabundo> > > und bei PHP **immer** dran denken: Sobald das erste Byte vom Body geschrieben wurde, lässt sich an den Headern nichts mehr tun.
> >
> > Das "immer" galt in den "guten" alten Zeiten. Seit PHP (wohl) Version 5.6 braucht es jedenfalls für PHP, welches nicht als CLI ausgeführt wird, im folgenden Beispiel das `ob_start()` nicht mehr:
>
> Das stimmt so absolut auch wieder nicht.
Doch. Das von mir im Zitat absichtlich betonte "immer" stimmt absolut nicht.
> Wenn du aber mal nach oben rollst, siehst du, dass der Default-Wert 0 ist, und damit das Output-Buffering ausgeschaltet ist. Ist das nicht widersprüchlich?
Widersprüchlich ist die Dokumentation:
In meiner, von mir nicht geänderten Fassung von /etc/php/7.3/apache2/php.ini
~~~
; output_buffering
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
~~~
und, weiter unten:
~~~
; Note: Output buffering can also be controlled via Output Buffering Control
; functions.
; Possible Values:
; On = Enabled and buffer is unlimited. (Use with caution)
; Off = Disabled
; Integer = Enables the buffer and sets its maximum size in bytes.
; Note: This directive is hardcoded to Off for the CLI SAPI
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering = 4096
~~~
Das entspricht z.B. auch dem [Originaldownload "php-7.3.3.tar.bz2"](http://php.net/get/php-7.3.3.tar.bz2/from/a/mirror), darin der "php.ini-production" in den Blöcken ab den Zeilen 126 bzw. 203.
Soll heißen, die Entwickler benutzen den im Programm selbst bestimmten default-value "off" in den mit gelieferten ini-Dateien selbst gerade nicht und überschreiben ihn - übrigens auch in der "php.ini-development".
Die "guten" alten Zeiten...
bearbeitet von ursus contionabundo> > > und bei PHP **immer** dran denken: Sobald das erste Byte vom Body geschrieben wurde, lässt sich an den Headern nichts mehr tun.
> >
> > Das "immer" galt in den "guten" alten Zeiten. Seit PHP (wohl) Version 5.6 braucht es jedenfalls für PHP, welches nicht als CLI ausgeführt wird, im folgenden Beispiel das `ob_start()` nicht mehr:
>
> Das stimmt so absolut auch wieder nicht.
Doch. Das von mir im Zitat absichtlich betonte "immer" stimmt absolut nicht.
> Wenn du aber mal nach oben rollst, siehst du, dass der Default-Wert 0 ist, und damit das Output-Buffering ausgeschaltet ist. Ist das nicht widersprüchlich?
Widersprüchlich ist die Dokumentation:
In meiner, von mir nicht geänderten Fassung von /etc/php/7.3/apache2/php.ini
~~~
; output_buffering
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
~~~
und, weiter unten:
~~~
; Note: Output buffering can also be controlled via Output Buffering Control
; functions.
; Possible Values:
; On = Enabled and buffer is unlimited. (Use with caution)
; Off = Disabled
; Integer = Enables the buffer and sets its maximum size in bytes.
; Note: This directive is hardcoded to Off for the CLI SAPI
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering = 4096
~~~
Das entspricht z.B. auch dem [Originaldownload "php-7.3.3.tar.bz2"](http://php.net/get/php-7.3.3.tar.bz2/from/a/mirror), darin der "php.ini-production" in den Blöcken ab den Zeilen 126 bzw. 203.
Soll heißen, die Entwickler benutzen den default-value in den mit gelieferten ini-Dateien selbst gerade nicht.
Die "guten" alten Zeiten...
bearbeitet von ursus contionabundo> > > und bei PHP **immer** dran denken: Sobald das erste Byte vom Body geschrieben wurde, lässt sich an den Headern nichts mehr tun.
> >
> > Das "immer" galt in den "guten" alten Zeiten. Seit PHP (wohl) Version 5.6 braucht es jedenfalls für PHP, welches nicht als CLI ausgeführt wird, im folgenden Beispiel das `ob_start()` nicht mehr:
>
> Das stimmt so absolut auch wieder nicht.
Doch. Das von mir im Zitat absichtlich betonte "immer" stimmt absolut nicht.
> Wenn du aber mal nach oben rollst, siehst du, dass der Default-Wert 0 ist, und damit das Output-Buffering ausgeschaltet ist. Ist das nicht widersprüchlich?
Widersprüchlich ist die Dokumentation:
in meiner, von mir nicht geänderten Fassung von /etc/php/7.3/apache2/php.ini
~~~
; output_buffering
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
~~~
und, weiter unten:
~~~
; Note: Output buffering can also be controlled via Output Buffering Control
; functions.
; Possible Values:
; On = Enabled and buffer is unlimited. (Use with caution)
; Off = Disabled
; Integer = Enables the buffer and sets its maximum size in bytes.
; Note: This directive is hardcoded to Off for the CLI SAPI
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering = 4096
~~~
Das entspricht z.B. auch dem [Originaldownload "php-7.3.3.tar.bz2"](http://php.net/get/php-7.3.3.tar.bz2/from/a/mirror), darin der "php.ini-production" in den Blöcken ab den Zeilen 126 bzw. 203.