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 Pear 安装及使用
Mar 19 PHP
PHP备份/还原MySQL数据库的代码
Jan 06 PHP
基于PHP对XML的操作详解
Jun 07 PHP
php导出CSV抽象类实例
Sep 24 PHP
php+ajax实现无刷新分页
Nov 18 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
PHP实现Huffman编码/解码的示例代码
Apr 20 PHP
laravel5使用freetds连接sql server的方法
Dec 07 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
php解决约瑟夫环算法实例分析
Sep 30 PHP
php获取是星期几的的一些常用姿势
Dec 15 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
杏林同学录(七)
2006/10/09 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
2008/12/19 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
vue ssr+koa2构建服务端渲染的示例代码
2020/03/23 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
python查看FTP是否能连接成功的方法
2015/07/30 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Python使用xpath实现图片爬取
2020/09/16 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
2014年九一八事变演讲稿
2014/09/14 职场文书
员工评语范文
2014/12/31 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
党支部综合考察意见
2015/06/01 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android