什么可能导致Web服务器找不到XML文件?

时间:2012-01-29 05:00:09

标签: php xml webserver

我有一个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

2 个答案:

答案 0 :(得分:1)

请使用绝对路径,相对路径使事情变得一团糟。

答案 1 :(得分:0)

该位置是否相对于PHP?权限是否允许Web服务器查看它?