问题
一些回调函数是在脚本停止后执行的,此时一些网络服务器(例如Apache)会改变回调函数内脚本的工作目录,如果回调函数内有用到相对路径,则可能产生意料之外的结果
如:
register_shutdown_function()
注册的回调函数
ob_start()
函数的 output_callback
回调函数
类的析构函数 __destruct
,在脚本停止后执行的情况下(如果没有显式销毁)
解决办法
使用 chdir()
重设当前工作目录:
chdir(dirname($_SERVER['SCRIPT_FILENAME']));