header("Content-type: multipart/x-mixed-replace;boundary=endofsection");
print "--endofsection\n";
$pmt = array("-", "\\", "|", "/" );
for( $i = 0; $i <10;$i ++ )
{
sleep(1);
print "Content-type: text/plain\n\n";
print "Part $i ".$pmt[$i % 4];
print "--endofsection\n";
ob_flush(); //强制将缓存区的内容输出
flush(); //强制将缓冲区的内容发送给客户端
}
print "Content-type: text/plain\n\n";
print "The end\n";
print "–endofsection–\n";像手册评论里的这段代码,有两个疑问1.第8行Part $i那里,我换成html代码进行输出,浏览器直接输出了html字符串,而没有对html进行解析2.我不想第7行的"Content-type: text/plain\n\n"和第9行的print "--endofsection\n";输出到浏览器上,但是去掉这两行又实现不了推送了,应该怎么办?
print "--endofsection\n";
$pmt = array("-", "\\", "|", "/" );
for( $i = 0; $i <10;$i ++ )
{
sleep(1);
print "Content-type: text/plain\n\n";
print "Part $i ".$pmt[$i % 4];
print "--endofsection\n";
ob_flush(); //强制将缓存区的内容输出
flush(); //强制将缓冲区的内容发送给客户端
}
print "Content-type: text/plain\n\n";
print "The end\n";
print "–endofsection–\n";像手册评论里的这段代码,有两个疑问1.第8行Part $i那里,我换成html代码进行输出,浏览器直接输出了html字符串,而没有对html进行解析2.我不想第7行的"Content-type: text/plain\n\n"和第9行的print "--endofsection\n";输出到浏览器上,但是去掉这两行又实现不了推送了,应该怎么办?
解决方案 »
- 这样写之后为什么标签a失效了,应该怎么解决?
- 有没有什么方法得到导出数据库时表单的顺序啊
- metinfo4.0怎样实现:点击产品分类导航进入该产品的详细页面?
- 不改标头文件的情况下怎么换解码方式?
- 用过zend Framework的达人来看看啊
- 这样的字符串:c6b46b06cc839bbe是怎么加密得来的?
- 我的数据库字符格式为UTF-8,取出数据后中文为乱码。怎样解决啊?谢谢!
- 循环的数据放置到单元格中出现错误,请大家指点!
- move_uploaded_file()和copy()二个函数的问题
- 求Php发送邮件程序,从表单中取得数据。
- PHP require 找不到文件
- ajax 处理php返回的json 数组问题
text/html 才是超文本
我把print "Content-type: text/plain\n\n"; 改成 print "Content-type: text/html\n\n"; 后确实是解析了html元素,但是浏览器的行为变成等循环结束以后一起把数据输出,而不是像改动前的一句一句不断输出
chorme,现在的情况就是print "Content-type: text/plain\n\n"; 时正常推送print "Content-type: text/html\n\n"; 时html元素解析正常,但要等到延迟循环结束后一起输出除了这地方,其他代码都没改动
所以你用其他浏览器测试时,出现问题是正常的既然大多浏览器制造商都不愿支持,那么你也没有必要吧精力耗费在这个上面
要做的事情很多很多
header("Content-type: multipart/x-mixed-replace;boundary=endofsection");
print "--endofsection\n";//这里确保输出大于缓冲区大小长度的内容,str_repeat()函数, 各浏览器通用长度为:1024, 然后就能达到你想要的效果.
不错,html能正确解析并推送了。我不想第7行的"Content-type: text/plain\n\n"输出能否做到?我去掉这行就不能正常推送了