PHP set_time_limit(0)长连接的实现分析

yipeiwu_com6年前PHP代码库
每个PHP脚本都限制了执行时间,所以我们需要通过 set_time_limit 来设置一个脚本的执行时间为无限长;然后使用 flush() 和 ob_flush() 来清除服务器缓冲区,随时输出脚本的返回值。

如下面这段脚本:
复制代码 代码如下:

<?php
header("Content-Type: text/plain");
set_time_limit(0);

$infoString = "Hello World" . "\n";
while( isset($infoString) )
{
echo $infoString;
flush();
ob_flush();
sleep(5);
}
?>

当我们执行后,每隔5秒钟,我们会得到一行 Hello World ,如果不按停止按钮,浏览器会不停的一行一行继续加载。

通过这一方法,我们可以完成很多功能,例如机器人爬虫、即时留言板等程序。

相关文章

php根据生日计算年龄的方法

本文实例讲述了php根据生日计算年龄的方法。分享给大家供大家参考。具体如下: <?php function birthday($birthday){ $age =...

THINKPHP+JS实现缩放图片式截图的实现

THINKPHP+JS实现缩放图片式截图的实现

作者:杨鑫奇 原始链接:http://www.cnblogs.com/scotoma/archive/2010/03/05/1679477.html 今晚TP论坛的一位大哥加我了,说也遇...

phpadmin如何导入导出大数据文件及php.ini参数修改

最近遇到了数据库过大的时候用phpadmin导入的问题,新版本的phpadmin导入限定是8M,老版本的可能2M,我的数据库有几十兆这可怎么办呢? 首先如果你有独立服务器或vps的话可以...

php实现的简单中文验证码功能示例

php实现的简单中文验证码功能示例

本文实例讲述了php实现的简单中文验证码功能。分享给大家供大家参考,具体如下: img.php <?php session_start(); /*for($i=0;$i...

浅谈PHP中的Trait使用方法

浅谈PHP中的Trait使用方法

概述 在PHP中有一种代码复用的技术, 因为单继承的问题, 有些公共方法无法在父类中写出, 而 Trait可以应对这种情况, 它可以定义一些复用的方法, 然后在你需要使用的类中将其引入即...