????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 216.73.216.163 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/tests/output/ |
Upload File : |
--TEST-- ob_start() chunk_size: confirm buffer is flushed after any output call that causes its length to equal or exceed chunk_size. --INI-- opcache.optimization_level=0 --FILE-- <?php /* * proto bool ob_start([ string|array user_function [, int chunk_size [, bool erase]]]) * Function is implemented in main/output.c */ // In HEAD, $chunk_size value of 1 should not have any special behaviour (http://marc.info/?l=php-internals&m=123476465621346&w=2). function callback($string) { global $callback_invocations; $callback_invocations++; $len = strlen($string); return "f[call:$callback_invocations; len:$len]$string\n"; } for ($cs=-1; $cs<10; $cs++) { echo "\n----( chunk_size: $cs, output append size: 1 )----\n"; $callback_invocations=0; ob_start('callback', $cs); echo '1'; echo '2'; echo '3'; echo '4'; echo '5'; echo '6'; echo '7'; echo '8'; ob_end_flush(); } for ($cs=-1; $cs<10; $cs++) { echo "\n----( chunk_size: $cs, output append size: 4 )----\n"; $callback_invocations=0; ob_start('callback', $cs); echo '1234'; echo '5678'; ob_end_flush(); } ?> --EXPECTF-- ----( chunk_size: -1, output append size: 1 )---- f[call:1; len:8]12345678 ----( chunk_size: 0, output append size: 1 )---- f[call:1; len:8]12345678 ----( chunk_size: 1, output append size: 1 )---- f[call:1; len:1]1 f[call:2; len:1]2 f[call:3; len:1]3 f[call:4; len:1]4 f[call:5; len:1]5 f[call:6; len:1]6 f[call:7; len:1]7 f[call:8; len:1]8 f[call:9; len:0] ----( chunk_size: 2, output append size: 1 )---- f[call:1; len:2]12 f[call:2; len:2]34 f[call:3; len:2]56 f[call:4; len:2]78 f[call:5; len:0] ----( chunk_size: 3, output append size: 1 )---- f[call:1; len:3]123 f[call:2; len:3]456 f[call:3; len:2]78 ----( chunk_size: 4, output append size: 1 )---- f[call:1; len:4]1234 f[call:2; len:4]5678 f[call:3; len:0] ----( chunk_size: 5, output append size: 1 )---- f[call:1; len:5]12345 f[call:2; len:3]678 ----( chunk_size: 6, output append size: 1 )---- f[call:1; len:6]123456 f[call:2; len:2]78 ----( chunk_size: 7, output append size: 1 )---- f[call:1; len:7]1234567 f[call:2; len:1]8 ----( chunk_size: 8, output append size: 1 )---- f[call:1; len:8]12345678 f[call:2; len:0] ----( chunk_size: 9, output append size: 1 )---- f[call:1; len:8]12345678 ----( chunk_size: -1, output append size: 4 )---- f[call:1; len:8]12345678 ----( chunk_size: 0, output append size: 4 )---- f[call:1; len:8]12345678 ----( chunk_size: 1, output append size: 4 )---- f[call:1; len:4]1234 f[call:2; len:4]5678 f[call:3; len:0] ----( chunk_size: 2, output append size: 4 )---- f[call:1; len:4]1234 f[call:2; len:4]5678 f[call:3; len:0] ----( chunk_size: 3, output append size: 4 )---- f[call:1; len:4]1234 f[call:2; len:4]5678 f[call:3; len:0] ----( chunk_size: 4, output append size: 4 )---- f[call:1; len:4]1234 f[call:2; len:4]5678 f[call:3; len:0] ----( chunk_size: 5, output append size: 4 )---- f[call:1; len:8]12345678 f[call:2; len:0] ----( chunk_size: 6, output append size: 4 )---- f[call:1; len:8]12345678 f[call:2; len:0] ----( chunk_size: 7, output append size: 4 )---- f[call:1; len:8]12345678 f[call:2; len:0] ----( chunk_size: 8, output append size: 4 )---- f[call:1; len:8]12345678 f[call:2; len:0] ----( chunk_size: 9, output append size: 4 )---- f[call:1; len:8]12345678