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+iframe实现隐藏无刷新上传文件
Feb 10 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
Apr 18 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
PHP文件缓存类实现代码
Oct 26 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 18 PHP
php自动加载代码实例详解
Feb 26 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开发需要注意的安全问题
2010/09/01 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
Vue中如何实现proxy代理
2018/04/20 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
python中Genarator函数用法分析
2015/04/08 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
分析python切片原理和方法
2017/12/19 Python
Django之无名分组和有名分组的实现
2019/04/16 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
高一英语教学反思
2014/01/22 职场文书
迟到检讨书大全
2014/01/25 职场文书
小学生读书感言
2014/02/12 职场文书
文艺演出策划方案
2014/06/07 职场文书
党课培训心得体会
2014/09/02 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python