2012-04-13 179 views
1

我想知道是否有人可以帮助我。服务器真实路径

我正在尝试检索我用于在我正在构建的图像库脚本中的xml文件的文件路径。

我的文件夹结构如下:

website/development/UploadedFiles/'username'folder/'location' folder/file.xml

我已经把这个尝试,让我的路径:

<?php 
chdir('var/www/'); 
echo realpath('./././file.xml'); 
?> 

但我收到以下错误:

Warning: chdir() [function.chdir]: No such file or directory (errno 2) in /homepages/2/d333603417/htdocs/development/real.php on line 2

我敢肯定,我在这里犯了一个初学者的错误,但我希望至少有一次尝试。我只是想知道是否有人可能会对此感到失望,并让我知道我哪里会出问题。

非常感谢

+2

与'./././'你基本上还在同一个目录下。 – hjpotter92 2012-04-13 11:14:34

回答

0

如果你想获得一个文件相对于你的php文件的绝对路径,通常更容易做一些像dirname(__FILE__).'/path/to/file'这样的事情,因为它比使用相对路径使用chdir更可预测。您也可以将其回显以进行调试。

所以你的情况,它看起来像你可能希望有这样的事情:

$file = dirname(__FILE__)."/UploadedFiles/$username/$location/file.xml"; 

如果您需要向上遍历目录,你有多个dirnames中做到这一点:

$file = dirname(dirname(__FILE__))."/UploadedFiles/$username/$location/file.xml"; 
+0

嗨@mensi,非常感谢您花时间帮助我。原谅我问一个非常愚蠢的问题,但你能告诉我,请将thsi文件添加到根目录并从那里运行它?亲切的问候 – IRHM 2012-04-13 12:18:18

+0

@IRHM只要相对路径保持不变并且正确,文件的位置并不重要。__FILE__指向写入的文件的绝对路径,因此请相应地调整dirname的数量。这也适用于包含,因为__FILE__引用它写入的实际文件,而不是web服务器最初加载的脚本。 – mensi 2012-04-13 12:50:37

+0

太好了,非常感谢。我有这个工作。 – IRHM 2012-04-13 13:20:41

5

,那是因为有两种类型的UNIX路径的:

绝对路径:/var/www/(总是以/开始)

相对路径:var/www/(相对于您所在的地方。开头没有/

如果你chdir到/var/www/你可以到/var/www/

如果CHDIR到var/www/你CHDIR到<directory_where_you_are>/var/www/

而且你./././有一个错误。

./ - 表示您的当前目录。使用./././会将您留在当前目录中。

如果您想通过目录树向上移动,请使用../(表示父目录)。

+0

嗨,非常感谢回复我的帖子。这非常有用,尤其对于初学者来说。亲切的问候 – IRHM 2012-04-13 12:47:51

+0

欢迎您! – 2012-04-16 05:02:34