Evet, PHP bunları yapacak, sonra büyük kıçlı parçaları, (0x1000 oktet ya da öylesine) sakıncası yoksa, bu ... biraz vauge aldı.
<?php
while (true) {
# output data
flush()
usleep(pow(2,18));
}
?>
PHP numaralı bölümleri, vb oluşturulur olacak
Eğer bir AJAX müşteri ile yapmak gibi, minik parçalarını göndermek istiyorsanız ... iyi, ben PHP.NET üzerinde biraz araştırma ile, OP soru kombine ettik, ve o iyi bir şey oldu gibi gözüküyor .
$ Echo-en "/ chunked GET / HTTP/1.1 \ r nHost: \ ec \ r \ n \ r \ n" | nc localhost 80
HTTP/1.1 200 OK
Date: Wed, 23 May 2012 13:03:01 GMT
Server: Apache/2.2.9 (Debian) PHP/5.3.5-1 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8o
X-Powered-By: PHP/5.3.5-1
Transfer-encoding: chunked
Content-Type: text/html
14
Teachers have class.
50
We secure our friends not by accepting favors but by doing them.
-- Thucydides
48
Vulcans never bluff.
-- Spock, "The Doomsday Machine", stardate 4202.1
31
All kings is mostly rapscallions.
-- Mark Twain
41
Reappraisal, n.:
An abrupt change of mind after being found out.
49
He who knows, does not speak. He who speaks, does not know.
-- Lao Tsu
Sonunda kendi (yanlış) bir yığın sayılmasını dışarı dışarıda sıkmak olsun ya da olmasın, göreceğiz ... ama bunun hiçbir işareti gördüm.
<?php
header("Transfer-encoding: chunked");
@apache_setenv('no-gzip', 1);
@ini_set('zlib.output_compression', 0);
@ini_set('implicit_flush', 1);
for ($i = 0; $i < ob_get_level(); $i++) ob_end_flush();
ob_implicit_flush(1); flush();
function dump_chunk($chunk)
{
printf("%x\r\n%s\r\n", strlen($chunk), $chunk);
flush();
}
for (;;) {
$output = array();
exec("/usr/games/fortune", $output);
dump_chunk(implode("\n", $output));
usleep(pow(2,18));
}
?>