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 相关文章推荐
ASP和PHP都是可以删除自身的
Apr 09 PHP
php jquery 实现新闻标签分类与无刷新分页
Dec 18 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
使用php判断网页是否gzip压缩
Jun 25 PHP
php中用socket模拟http中post或者get提交数据的示例代码
Aug 08 PHP
解决php接收shell返回的结果中文乱码问题
Jan 23 PHP
php浏览历史记录的方法
Mar 10 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
thinkPHP5框架自定义验证器实现方法分析
Jun 11 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
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
JavaScript new对象的四个过程实例浅析
2018/07/31 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
详解python时间模块中的datetime模块
2016/01/13 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
Python爬虫与反爬虫大战
2020/07/30 Python
HTTP状态码详解
2021/03/18 杂记
css3 transform属性详解
2014/09/30 HTML / CSS
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
高一英语教学反思
2014/01/22 职场文书
酒后驾车标语
2014/06/30 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
信息技术国培研修日志
2015/11/13 职场文书
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS