error_get_last()- 获取最后发生的错误

示例:

<?php
echo $a;
print_r(error_get_last());

结果:

Array
(
		[type] => 8
		[message] => Undefined variable: a
		[file] => C:\WWW\index.php
		[line] => 2
)

register_shutdown_function() - 注册一个会在php中止时执行的函数

注册一个方法,当一个请求request执行完毕时,调用这个注册的方法。注意,哪怕在执行过程中发生error导致本次请求被强制退出,注册的方法也会执行。

示例:

function catch_error(){
		$error = error_get_last();
		if($error){
				var_dump($error);
		}
}
register_shutdown_function("catch_error");
ini_set('memory_limit','1M');
$content = str_repeat("aaaaaaaaaaaaaaaaaaaaaaa",100000);
echo "aa";

结果:

array(4) { ["type"]=> int(1) ["message"]=> string(80) "Allowed memory size of 1048576 bytes exhausted (tried to allocate 2300001 bytes)" ["file"]=> string(39) "/test.php" ["line"]=> int(13) }

fastcgi_finish_request()- 冲刷(flush)所有响应的数据给客户端

此函数冲刷(flush)所有响应的数据给客户端并结束请求。 这使得客户端结束连接后,需要大量时间运行的任务能够继续运行

示例:

<?php

echo '例子:';

file_put_contents('log.txt', date('Y-m-d H:i:s') . " 上传视频\n", FILE_APPEND);

fastcgi_finish_request();

sleep(1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 转换格式\n", FILE_APPEND);

sleep(1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 提取图片\n", FILE_APPEND);

按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行,就可以使用这个方法.

参考文档

妙用php中的register_shutdown_function和fastcgi_finish_request

使用fastcgi_finish_request提高页面响应速度ml)