PHP register_shutdown_function()函数的使用示例_php实例

通过 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 方法时,第一个参数一定要使用绝对路径。

时间: 2024-11-03 13:21:01

PHP register_shutdown_function()函数的使用示例_php实例的相关文章

PHP register_shutdown_function函数的深入解析_php实例

脚本时常死掉,而且并不总是那么好看. 我们可不想给用户显示一个致命错误,又或者一个空白页(在display_errors设为off的情况下) . PHP中有一个叫做  register_shutdown_function 的函数,可以让我们设置一个当执行关闭时可以被调用的另一个函数.也就是说当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会 被调用.所以,我们可以使用在脚本开始处设置一个变量为false,然后在脚本末尾将之设置为true的方法,让PHP关闭回调函数检查脚本

PHP stream_context_create()函数的使用示例_php实例

stream_context_create()函数是用来 创建打开文件的上下文件选项 ,用于fopen(),file_get_contents()等过程的超时设置.代理服务器.请求方式.头信息设置的特殊过程. 比如说,上篇php教程中gd库实现下载网页所有图片中,第10行: 利用了stream_context_create()设置代理服务器: 复制代码 代码如下: //设置代理服务器 $opts = array('http'=>array('request_fulluri'=>true));

PHP输出当前进程所有变量/常量/模块/函数/类的示例_php实例

1. get_defined_vars  (PHP 4 >= 4.0.4, PHP 5) - 获取由所有已定义变量所组成的数组array get_defined_vars ( void )此函数返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量.服务器变量和用户定义的变量. 复制代码 代码如下: <?phpecho '<pre>';$b = array(1,1,2,3,5,8);$arr = get_defined_vars();// 打印 $bprint_r($arr

基于php验证码函数的使用示例_php实例

复制代码 代码如下: function _code($_code_length = 4, $_width = 75, $_height = 25){    for($i=0;$i<$_code_length;$i++){        $_nmsg .= dechex(mt_rand(0,15));    }    $_SESSION["code"] = $_nmsg;     $_img = imagecreatetruecolor($_width, $_height);   

php 模拟get_headers函数的代码示例_php实例

复制代码 代码如下: <?php  02 if(!function_exists('get_headers')){  03     function get_headers($url,$format=0){  04         $url=parse_url($url);  05         $end="\r\n\r\n";  06         $fp=fsockopen($url['host'],(empty($url['port'])?80:$url['port']

php中的filesystem文件系统函数介绍及使用示例_php实例

basename - 返回路径中的文件名部分dirname - 返回路径中的目录部分 复制代码 代码如下: string basename ( string $path [, string $suffix ] )string dirname ( string $path ) 示例: 复制代码 代码如下: <?php$path = "/home/httpd/phpha.com/index.php";echo basename($path);echo basename($path,

thinkPHP模板中函数的使用方法示例_php实例

本文实例讲述了thinkPHP模板中函数的使用方法.分享给大家供大家参考,具体如下: 1.php中的方法使用 <?php $var_num = "13966778888"; $str = substr_replace($var_num,'*****',3,5); echo $str; $var_date = time(); $str = date("Y-m-d H:i",$var_date); echo $str; ?> 2.模板中的使用 {sh:$me

php通过字符串调用函数示例_php实例

1. call_user_func 复制代码 代码如下: function a($b,$c){  echo $b;  echo $c;}call_user_func('a', "111","222");call_user_func('a', "333","444"); //显示 111 222 333 444?>  调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的

php中url函数介绍及使用示例_php实例

base64_encode - 使用 MIME base64 对数据进行编码base64_encode() returns 使用 base64 对 data 进行编码.设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体.Base64-encoded 数据要比原始数据多占用 33% 左右的空间. 复制代码 代码如下: <?php$str = 'This is an encoded string';// VGhpcyBpcyBhbiBlbmNvZGVkIHN0c