• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

这段php为何执行完了才在html中显示

php 搞代码 4年前 (2022-01-24) 18次浏览 已收录 0个评论

这段php为什么执行完了才在html中显示
.这个是从文本文件中读入每行内容,并显示在html中,我想实时显示,但这个似乎是等所有的循环执行完成了以后才显示的;求解,有没有什么办法让它循环一次显示一次;

<br />$shili = fopen ("test.txt","r") ;  //打开文本<br />	while ( !feof ( $shili ))//判断是否到了文件最后的函数<br />	{<br />		$shi = fgets ( $shili,1024 ) ;        //读取其中的数据<br />		$xx="!#$^";<br />		//$headret = PostData($shi);<br />		$headret="234234";<br />		$bodaytext=$xx.$headret;<br />		if(strpos($bodaytext,'密码错误') > 0)      //判断返回值是不是空的,是空的就是没有'-'<br />		{<br />			echo $shi.":密码不正确"."</br>";<br />			continue;<br />		}<br />		else<br />		{<br />			echo $shi.":密码正确。跳出循环"."</br>";<br />			//break;<br />		}<br />	}<br />	fclose ( $shili ) ; <br />

——解决方案——————–
While(true){
$N=Count(File($file));
IF($N!=$total){
$total = $N;
$HTM=File($file);
Echo ‘

‘,Htmlspecialchars(End($HTM)),’

‘;
ob_flush();
flush();
}Else{
usleep(1500);
}
}
——解决方案——————–
php是服务端,全执行完了,才会一次性推给客户端。

如果你想实现一个一个的显示,需要使用缓冲,但好像服务器还要配置什么东西配合的。
——解决方案——————–
服务器要关闭gzip,将buffer设置小一些。
浏览器也有buffer,这个没法关,所以每次服务器端输出时,填充一些空白字节进来。

都做到就可以实现实时输出了
——解决方案——————–
$shi = fgets ( $shili,5) ;
这个 5 太小了
你示例的数据是 zzwc 在文件中还有回车换行
而 5 正好读到 zzwc\r 还剩 \n 没有读
下一次读到 \n 就结束了(这是 fgets 的约定)
由于没有读到数据,自然也就只输出“密码不正确

本文来*源gaodai^.ma#com搞#代!码网
搞gaodaima代码

”了


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:这段php为何执行完了才在html中显示
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址