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入门
Oct 09 PHP
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
Nov 18 PHP
PHP 数组和字符串互相转换实现方法
Mar 26 PHP
php使用标签替换的方式生成静态页面
May 21 PHP
PHP消息队列用法实例分析
Feb 12 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
Apr 10 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 PHP
laravel5.6中的外键约束示例
Oct 23 PHP
PHP设计模式概论【概念、分类、原则等】
May 01 PHP
PHP接入支付宝接口失效流程详解
Nov 10 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实现图片简单上传
2006/10/09 PHP
PHP通用检测函数集合
2006/11/25 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
vue ssr 指南详读
2018/06/29 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
python中pygame模块用法实例
2014/10/09 Python
Python实现子类调用父类的方法
2014/11/10 Python
Python实现高效求解素数代码实例
2015/06/30 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
Python错误处理操作示例
2018/07/18 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
护士年终个人总结
2015/02/13 职场文书
男方婚前保证书
2015/02/28 职场文书
大学生求职信怎么写
2015/03/19 职场文书
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript