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 相关文章推荐
屏蔽浏览器缓存另类方法
Oct 09 PHP
php session 检测和注销
Mar 16 PHP
PHP源码之explode使用说明
Aug 05 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
php数组删除元素示例
Mar 21 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
php实现对象克隆的方法
Jun 20 PHP
Joomla开启SEF的方法
May 04 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
基于PHP常用文件函数和目录函数整理
Aug 17 PHP
PHP正则表达式笔记与实例详解
May 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
Python3基于sax解析xml操作示例
2018/05/22 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
什么是python的函数体
2020/06/19 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
2014年党员个人剖析材料
2014/10/08 职场文书
党员剖析材料范文
2014/12/18 职场文书
运动会主持词大全
2015/07/02 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
加强党性修养心得体会
2016/01/21 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python