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写的serv-u的web申请账号的程序
Oct 09 PHP
PHP简介
Oct 09 PHP
php类
Nov 27 PHP
注册页面之前先验证用户名是否存在的php代码
Jul 14 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
Sep 19 PHP
如何用php获取文件名后缀
Jun 09 PHP
php对包含html标签的字符串进行截取的函数分享
Jun 19 PHP
Yii框架登录流程分析
Dec 03 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
Mar 21 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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
个人写的PHP验证码生成类分享
2014/08/21 PHP
PHP获取文件行数的方法
2015/06/10 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
繁简字转换功能
2006/07/19 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
python SQLAlchemy 中的Engine详解
2019/07/04 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
Django 限制访问频率的思路详解
2019/12/24 Python
pytorch的梯度计算以及backward方法详解
2020/01/10 Python
详解python中的闭包
2020/09/07 Python
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
教师自我鉴定范文
2013/11/10 职场文书
公休请假条
2014/04/11 职场文书
体育专业求职信
2014/07/16 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
Python进行区间取值案例讲解
2021/08/02 Python
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL