php直接路径file_exists()

时间:2011-07-23 16:09:32

标签: php file

我在类中使用file_exists(),我想在root用户以及包含在另一个文件夹中使用它来查看文件是否存在。

我目前有:

if (file_exists("./photos/".$this->id.".jpg") ){ 

//

}

它包含在根目录中,但不包含在文件夹中时(适用于ajax)。

我能做些什么来直接指导(我认为这是正确的词)?由于功能的性质,我无法将我的网站网址放入其中。

5 个答案:

答案 0 :(得分:2)

最简单的方法是使用绝对(完整)路径:

if (file_exists("/full/path/to/photos/".$this->id.".jpg") ){ 
    //
}

这样,无论脚本执行的位置如何,永远不会改变的完整路径始终有效。

当然,您可能不希望将完整路径硬编码到PHP脚本中......


因此,您可以使用dirname(__FILE__)获取包含您编写dirname(__FILE__)的文件的目录的完整路径,并从那里开始使用相对的文件。

例如:

$path = dirname(__FILE__) . '/../../files/photos/'.$this->id.".jpg";
if (file_exists($path)) {
    // 
}

(在测试时,您可能希望首先显示$path的值,以确保路径正确)


注意:如果您使用的是PHP> = 5.3,则可以使用__DIR__代替dirname(__FILE__)


相关手册页:

答案 1 :(得分:0)

听起来你只需要将根目录中的完整路径放入代码中。

if (file_exists("/root_dir/path/to/photos/".$this->id.".jpg") )

答案 2 :(得分:0)

使用dirname(__FILE__)来获取php文件本身的路径或多或少是常见的,无论是直接调用还是包含它。所以在你的情况下你可以写:

if(file_exists(dirname(__FILE__) . '/photos/'.$this->id.'.jpg'))

答案 3 :(得分:0)

假设“photos”文件夹位于包含代码的类的同一级别:

if (file_exists(dirname(__FILE__)."/../photos/".$this->id.".jpg") ){ 

//

}

答案 4 :(得分:0)

dirname( FILE )=" ../"

dirname(dirname( FILE ))=" ../../"

dirname(dirname(dirname( FILE )))=" ../../../"

你可以试试吧。