2013-03-16 54 views
7

我有一些问题,在PHP fopen的相对和绝对路径。 我有以下目录:如何在php fopen中编写路径?

project: 
    scripts: 
     myscript.php 
    logs: 
     mylog.log 

我想打开从myscript.phpmylog.log,我不知道如何指定的路径。我试过

fopen('../logs/mylog.log', "a") 

但它不起作用。 谢谢。 LE:谢谢你的回答。

+1

有没有“它不工作”,有可能是错误消息来代替。 – str 2013-03-16 15:20:12

+0

它是否返回错误?该错误应该反映正在访问的解决路径。另外,检查权限。 – Anthony 2013-03-16 15:20:21

+0

@str - 你在开玩笑吗?我得到了* TON *没有用。 – Anthony 2013-03-16 15:21:07

回答

19

在PHP中,有一对夫妇的全局常量,可能会有所帮助的给你。即,__DIR__为您提供当前文件的目录('.'只是为您提供了执行根脚本的目录)。

所以,你想要的是:

fopen(__DIR__ . '/../logs/mylog.log', "a") 
+0

确实。 'dirname(__ FILE __)'可用于5.3.0下PHP安装的可移植性。 – TaZ 2013-03-16 15:31:10

4

您可以使用$_SERVER['DOCUMENT_ROOT'],它提供虚拟主机的文档根目录。

如:$_SERVER['DOCUMENT_ROOT']."/log/mylog.log"

+2

你假设他是通过网络服务器运行而不是命令行。 – 2013-03-16 15:21:38

6

这应该工作:

fopen(__DIR__ . '/../logs/mylog.log', "a"); 

或PHP < 5.3:

fopen(dirname(__FILE__) . '/../logs/mylog.log', "a");