Heim  >  Artikel  >  Backend-Entwicklung  >  急求:关于PHP实时向客户端输出数据的有关问题

急求:关于PHP实时向客户端输出数据的有关问题

WBOY
WBOYOriginal
2016-06-13 13:37:52614Durchsuche

急求:关于PHP实时向客户端输出数据的问题
测试代码如下:
ob_start();
for($i = 1; $i   $sourceName = 'filetoupload' . $i;
  $imageArray = array();
  $message = "Image $i has been uploaded to the server";
  echo $message;
  flush();
  ob_flush();
  usleep(500000);
}
ob_end_flush(); 
?>
测试结果如下:
在本地服务器上该脚本就可以边运行边输出,可是在内网服务器上运行就是100次循环运行完后才输出;

想要的正确结果:
如同在本地服务器上运行结果一样,边运行边输出显示。请问为什么同样的脚本在内网服务器执行就是不同的结果,是不是与php.ini中的哪个配置项有关??? 与哪些配置项有关???望得到大家的帮助,先感谢了


------解决方案--------------------
你假如真的急的话!我想出一个办法!就是页面传值,不要用循环了!

PHP code

$id=empty($_GET['id'])?1:intval($_GET['id']);
$sourceName = 'filetoupload' . $i;
$imageArray = array();
$message = "Image $i has been uploaded to the server";
echo $message;
if ($id>=100){
exit();
}
$id++;
$msg.="<meta http-equiv="Refresh" content='0;URL=?id=".$id."'>";
echo $msg;
exit();
<br><font color="#e78608">------解决方案--------------------</font><br>为这问题 我开启了好久没用的linux 最终发现是缓存的问题  <br>
PHP code

<?php ob_start();
for($i = 1; $i <= 100; $i++){
    ob_end_flush();//关闭缓存
    $sourceName = 'filetoupload' . $i;
    $imageArray = array();
    $message = "Image $i has been uploaded to the server";
    echo $message;
    flush();
    ob_flush();
    usleep(500000);
}
ob_end_flush(); 
?>
<br><font color="#e78608">------解决方案--------------------</font><br>
探讨
引用:
为这问题 我开启了好久没用的linux 最终发现是缓存的问题

PHP code

ob_start();
for($i = 1; $i ob_end_flush();//关闭缓存
$sourceName = 'filetoupload' . $i;
$imageArray = arr……

------解决方案--------------------
这个缓冲和浏览器相关,和apache的某些模块也相关。
keep try
===================================
PHP code
ob_end_clean();
apache_setenv('no-gzip', 1);
ini_set('zlib.output_compression', 0);
ini_set('implicit_flush', 1);
ob_start();//开始缓冲数据
for($i = 1; $i ";
    echo $message.str_repeat(" ",1024);//ie有默认的1k buffer
    ob_flush();
    flush();
    usleep(500000);
} <div class="clear">
                 
              
              
        
            </div>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel: 这个一般如何做 Nächster Artikel: 关于zend_acl,该如何解决