我有一个PHP脚本,它从xml文件中读取以生成表格。它做的第一件事是检查以确保文件存在。
$path = getcwd();
if(file_exists($path.'\inc\php\kbs.xml')){
$kbs = simplexml_load_file($path.'\inc\php\kbs.xml');
} else {
echo "Error: No KB file found";
}
出于某种原因,间歇性地,它找不到该文件。我已经尝试一起删除file_exists
检查(因为我知道该文件确实存在),但它仍然无法加载文件。我可以刷新页面,10次中有7次没有加载,但有时会这样做。
我在开发过程中从未遇到过这个问题,但一旦开始生产(现在可能被200个用户使用),它就开始发生了。
如何对此进行故障排除? (在IIS上运行PHP 5.2.14)
编辑:错误日志在失败时会给我以下消息:
Notice: Undefined variable: kbs in <the path> on line 16
Notice: Trying to get property of non-object in <the path> on line 16
Warning: Invalid argument supplied for foreach() in <the path> on line 16
第16行是第一次访问变量$kbs
。显然,如果找不到该文件,则不会设置$kbs
。
答案 0 :(得分:1)
请使用绝对路径,相对路径使事情变得一团糟。
答案 1 :(得分:0)
该位置是否相对于PHP?权限是否允许Web服务器查看它?