Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 服务器实际路径_Php - Fatal编程技术网

Php 服务器实际路径

Php 服务器实际路径,php,Php,不知是否有人能帮助我 我正在尝试检索xml文件的文件路径,该文件用于在我正在构建的图像库脚本中创建 我的文件夹结构如下: 网站/开发/上传文件/“用户名”文件夹/“位置” folder/file.xml 我把这些放在一起,试图找到路径: <?php chdir('var/www/'); echo realpath('./././file.xml'); ?> 但我收到以下错误: 警告:chdir()[function.chdir]:没有这样的文件或目录(errno 2) 在第2

不知是否有人能帮助我

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

我的文件夹结构如下:

网站/开发/上传文件/“用户名”文件夹/“位置” folder/file.xml

我把这些放在一起,试图找到路径:

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

但我收到以下错误:

警告:chdir()[function.chdir]:没有这样的文件或目录(errno 2) 在第2行的/homepages/2/d333603417/htdocs/development/real.php中

我确信我在这里犯了一个初学者的错误,但我想至少尝试一下。我只是想知道是否有人可能会在这件事上大发雷霆,让我知道我哪里做错了


非常感谢

这是因为有两种类型的Unix路径:

绝对路径:
/var/www/
(始终以
/
开头)

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

如果您点击
/var/www/
,您将进入
/var/www/

如果您选择chdir到
var/www/
您选择chdir到
/var/www/

您在
中还有一个错误

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


如果要按目录树向上移动,请使用
。/
(表示父目录)。

这是因为有两种类型的Unix路径:

绝对路径:
/var/www/
(始终以
/
开头)

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

如果您点击
/var/www/
,您将进入
/var/www/

如果您选择chdir到
var/www/
您选择chdir到
/var/www/

您在
中还有一个错误

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


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

如果您想获得文件相对于php文件的绝对路径,通常更容易执行类似于
dirname(uu file_uu)的操作。'/path/to/file'
,因为它比使用相对路径的chdir更容易预测。您也可以只回显它以进行调试

因此,在您的情况下,看起来您可能想要这样的东西:

$file = dirname(__FILE__)."/UploadedFiles/$username/$location/file.xml";
如果需要向上遍历目录,可以使用多个目录名:

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

如果您想获得文件相对于php文件的绝对路径,通常更容易执行类似于
dirname(\uuu file\uu)。'/path/to/file'
的操作,因为它比使用相对路径的chdir更容易预测。您也可以只回显它以进行调试

因此,在您的情况下,看起来您可能想要这样的东西:

$file = dirname(__FILE__)."/UploadedFiles/$username/$location/file.xml";
如果需要向上遍历目录,可以使用多个目录名:

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

有了
/
你基本上还是在同一个目录下。有了
/
你基本上还是在同一个目录下。你好@mensi,非常感谢你抽出时间来帮助我。请原谅我问了一个非常愚蠢的问题,但是你能告诉我我是否要将thsi文件添加到根目录并从那里运行它吗?友善的regards@IRHM只要相对路径保持不变且正确,文件位于何处并不重要。FILE指向写入的文件的绝对路径,因此相应地调整dirname的数量。这也适用于include,因为文件指的是它编写的实际文件,而不是Web服务器最初加载的脚本。您好@mensi,非常感谢您抽出时间来帮助我。请原谅我问了一个非常愚蠢的问题,但是你能告诉我我是否要将thsi文件添加到根目录并从那里运行它吗?友善的regards@IRHM只要相对路径保持不变且正确,文件位于何处并不重要。FILE指向写入的文件的绝对路径,因此相应地调整dirname的数量。这也适用于include,因为文件引用了它所写入的实际文件,而不是webserver最初加载的脚本。嗨,非常感谢您回复我的文章。了解这一点非常有用,特别是对于初学者。谢谢你回复我的帖子。了解这一点非常有用,特别是对于初学者。问候