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

2015-01-24信息快讯网

每次我们访问PHP脚本的时候,都是当所有的PHP脚本执行完成后,我们才得到返回结果。如果我们需要一个脚本持续的运行,那么我们就要通过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 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
从手册去理解分析PHP session机制
php数组的一些常见操作汇总
PHP在特殊字符前加斜杠的实现代码
PHP的explode和implode的使用说明
php max_execution_time执行时间问题
PHP setcookie设置Cookie用法(及设置无效的问题)
php中session_unset与session_destroy的区别分析
PHP curl_setopt()函数实例代码与参数分析
Windows下利用Gvim写PHP产生中文乱码问题解决方法
PHP session有效期session.gc_maxlifetime
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
The specified CGI application misbehaved by not returning a complete set of HTTP headers
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
php set_time_limit(0) 设置程序执行时间的函数
php下过滤html代码的函数 提高程序安全性
PHP clearstatcache()函数详解
PHP strtok()函数的优点分析
关于PHP5 Session生命周期介绍
PHP正则的Unknown Modifier错误解决方法
php is_file()和is_dir()用于遍历目录时用法注意事项
php下使用SimpleXML 处理XML 文件
php microtime获取浮点的时间戳
PHP simple_html_dom.php+正则 采集文章代码
PHP strtotime函数详解
phpmyadmin导入(import)文件限制的解决办法
PHP MYSQL乱码问题,使用SET NAMES utf8校正
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
PHP setcookie() cannot modify header information 的解决方法
使用Limit参数优化MySQL查询的方法
mysql limit查询优化分析
Mysql中limit的用法方法详解与注意事项
©2014-2024 dbsqp.com