PHP register_shutdown_function()函数的使用示例


Posted in PHP onJune 23, 2015

通过 register_shutdown_function 方法,可以让我们设置一个当执行关闭时可以被调用的另一个函数。

也就是说,当我们的脚本执行完成或者意外死掉导致 php 执行即将关闭时,我们的这个函数会被调用。

【使用场景】

① 页面被(用户)强制停止

② 程序代码意外终止或超时

③ php4 中没有析构函数,可以使用该函数模拟析构函数

shutdown.php

<?php
header("content-type:text/html;charset=utf-8");
class Shutdown{
  public function endScript(){
    if(error_get_last()){
      echo '<pre>';
      print_r(error_get_last());
      echo '</pre>';
    }
    file_put_contents('D:\practise\php\Error\error.txt', 'this is a test');
    die('脚本结束');
  } 
}

register_shutdown_function(array(new Shutdown(), 'endScript'));

//错误测试
echo md6();

执行,输出:

( ! ) Fatal error: Call to undefined function md6() in D:\practise\php\Error\shutdown.php on line 18
 Array

(

    [type] => 1

    [message] => Call to undefined function md6()

    [file] => D:\practise\php\Error\shutdown.php

    [line] => 18

)

脚本结束
D:\practise\php\Error\error.txt:

this is a test

注意:register_shutdown_function 方法是从内存中调用的,因此在使用 file_put_contents 方法时,第一个参数一定要使用绝对路径。

PHP 相关文章推荐
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
浅析PHP中Collection 类的设计
Jun 21 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
Aug 04 PHP
php数组和链表的区别总结
Sep 20 PHP
PHP利用curl发送HTTP请求的实例代码
Jul 09 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
Jun 23 #PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 #PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 #PHP
PHP实现链式操作的核心思想
Jun 23 #PHP
PHP魔术方法的使用示例
Jun 23 #PHP
8个PHP数组面试题
Jun 23 #PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 #PHP
You might like
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
JavaScript中的立即执行函数表达式介绍
2015/03/15 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
Vue自定义属性实例分析
2019/02/23 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
matplotlib绘制动画代码示例
2018/01/02 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
python微信公众号开发简单流程实现
2020/03/09 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
如何解决python多种版本冲突问题
2020/10/13 Python
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
本科生个人求职自荐信
2013/09/26 职场文书
电子商务专业自我鉴定
2013/12/18 职场文书
医药专业应届毕业生求职信范文
2014/01/01 职场文书
关于爱国的标语
2014/06/24 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
大学生十八大感想
2015/08/11 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL
css3 文字断裂效果
2022/04/22 HTML / CSS