您的位置:首页 > 编程语言 > PHP开发

PHP ignore_user_abort 与 connection_status 与 register_shutdown_function 使用方法

2011-05-05 11:13 1216 查看
PHP ignore_user_abort 与 connection_status 与 register_shutdown_function 使用方法

用ignore_user_abort()实现PHP计划任务

语法: int ignore_user_abort(int [setting]);

返回值: 整数

函数种类: PHP 系统功能

内容说明

0 - NORMAL(正常)1 - ABORTED(异常退出)2 - TIMEOUT(超时)

本函数配置或取得使用端连接中断后,PHP 程序是否仍继续执行。默认值为中断连接后就停止执行。

在 PHP 配置文件中 (php3.ini/php.ini) 的 ignore_user_abort 选项就是配置处。本功能在 PHP 3.0.7 版之后才开始提供。

ignore_user_abort,这个函数可以帮助我们实现像linux中的cron一样实现计划任务,用户关掉浏览器后还可以执行。

首先修改你的php.ini,将“; ignore_user_abort = On”的注释去掉,重启一下Apache或IIS。

运用sleep(300)+死循环, 这样就可以实现计划任务了, 这个程序里不要有输出, 有输出容易中断。

缺点: 要停止程序必得重启服务器,占内存大!!

<?php

ignore_user_abort(true);

set_time_limit(0);

while(1){

$fp = fopen('time_task.txt',"a+");

$str = date("Y-m-d h:i:s")."n";

fwrite($fp,$str);

fclose($fp);

sleep(1800); //半小时执行一次

}

?>

PHP代码

<?php

ignore_user_abort(true); // 启用函数

set_time_limit(0); // 无限次数执行脚本

$interval=60*2; // 每两分钟执行一次

do{

// 执行的内容开始

file_get_contents("http://www.liujingze.com/"); // 需要执行的过程

// 执行的内容结束

sleep($interval); // 按设置的间隔时间执行

}while(true);

?>

PHP计划任务实例代码

<?

ignore_user_abort();

set_time_limit(0);

$interval_second = 15;

do{

@$fp = fopen("leapsoulcn.txt","a");

if(!$fp)

{

echo "system error";

exit();

}

else

{

$fileData = "domain"."\t"."www.leapsoul.cn"."\n";

$fileData = $fileData."description"."\t"."PHP网站开发教程网,面向PHP初学者的PHP教程网。"."\n";

$fileData = $fileData."title"."\t"."本教程主要讲述使用ignore_user_abort函数实现PHP计划任务功能。";

fwrite($fp, $fileData);

fclose($fp);

}

sleep($interval_second);

}while(true);

?>

connection_status

取得连接状态。

语法: int connection_status(void);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可返回连接状态。使用时不须输入参数

register_shutdown_function

定义 PHP 程序执行完成后执行的函数。

语法: int register_shutdown_function(string func);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数向系统定义 PHP 程序 (Script) 执行结束之后所要执行的函数。当执行该指定的函数时,由于无法看到返回值,因此调试较困难。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: