--TEST-- GH-10031 ([Stream] STREAM_NOTIFY_PROGRESS over HTTP emitted irregularly for last chunk of data) --SKIPIF-- --INI-- allow_url_fopen=1 --CONFLICTS-- server --FILE-- ['ignore_errors' => true,]]); $lastBytesTransferred = 0; stream_context_set_params($context, ['notification' => function ($code, $s, $m, $mc, $bytes_transferred, $bytes_max) use (&$lastBytesTransferred) { if ($code === STREAM_NOTIFY_FILE_SIZE_IS) echo "expected filesize=$bytes_max".PHP_EOL; $lastBytesTransferred = $bytes_transferred; @ob_flush(); }]); $get = file_get_contents("http://".PHP_CLI_SERVER_ADDRESS, false, $context); echo "got filesize=" . strlen($get) . PHP_EOL; var_dump($lastBytesTransferred); ?> --EXPECT-- expected filesize=1000 got filesize=1000 int(1000)