切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
PHP register_shutdown_function函数详解[复制链接]
发表于 2013-3-12 16:11:40 | 显示全部楼层 |!read_mode!
            脚本时常死掉,而且并不总是那么好看. 我们可不想给用户显示一个致命错误,又或者一个空白页(在display_errors设为off的情况下) .            PHP中有一个叫做  register_shutdown_function 的函数,可以让我们设置一个当执行关闭时可以被调用的另一个函数.也就是说当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会 被调用.所以,我们可以使用在脚本开始处设置一个变量为false,然后在脚本末尾将之设置为true的方法,让PHP关闭回调函数检查脚本完成与否. 如果我们的变量仍旧是false,我们就知道脚本的最后一行没有执行,因此它肯定在程序执行到某处死掉了.我准备了一个非常基本的例子,可以演示在一个致 命错误需要显示时,你应该怎么给用户一些合适的反馈.你可以通过关闭致命错误的显示(译注:可以设置display_errors和 error_reporting),让例子看起来好看些.



<?php 
	$clean = false; 
	function shutdown_func(){ 
		global $clean; 
		if (!$clean){ 
			die("not a clean shutdown"); 
		} 
		return false; 
	} 
	register_shutdown_function("shutdown_func"); 
	$a = 1; 
	$a = new FooClass(); // 将因为致命错误而失败
	$clean = true; 
?>


操千曲而后晓声,观千剑而后识器。

代码区

GMT+8, 2019-11-17 08:34

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部