php fopen相对路径破碎 - 神秘

Jam*_*mes 2 php path relative-path

我知道"必须改变一些东西",但我的代码似乎已经无缘无故地破了一夜.

我的服务器目录结构是这样的:

/
/ scripts
/ audit
/ other_things

我在"scripts"文件夹中有一个脚本(比如说它叫做"/scripts/MyScript.php"),该文件夹使用curl从网页收集数据,并将其读取的网页的日期副本保存在"audit"文件夹中.

为了写入审计文件夹,我使用了

$ fh = fopen("./ audit/2008-09-09-183000.backup.log","w");

然而,停止工作,投掷

[function.fopen]:无法打开流:第353行/home/web/website.co.uk/audit/2008-09-09-183000.backup.log中没有此类文件或目录

然而,我通过改变路径来解决这个问题

"../audit/2008等" 从"./audit/2008"(这是两个句号/句号,而不是一个)

逻辑规定服务器配置中必须更改某些内容,但是什么?它是我管理的专用服务器.我怎样才能避免这样的事情再次发生?

我甚至通过SVN for MyScript.php,所有以前的版本都使用了单曲.在路上.

Nat*_*ate 7

使用dirname(__FILE__)以获取当前文件的文件系统路径.然后使用相对路径来定位您的audit目录.

例如,在内scripts/MyScript.php,dirname(__FILE__)将返回/home/web/website.co.uk/scripts.你可以可靠地附加/../audit到那个.

(注意,这甚至可以在included或required文件中工作 - 在这种情况下,它将返回包含文件所在的目录).