我在类中使用file_exists(),我想在root用户以及包含在另一个文件夹中使用它来查看文件是否存在。
我目前有:
if (file_exists("./photos/".$this->id.".jpg") ){
//
}
它包含在根目录中,但不包含在文件夹中时(适用于ajax)。
我能做些什么来直接指导(我认为这是正确的词)?由于功能的性质,我无法将我的网站网址放入其中。
答案 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__)
。
相关手册页:
dirname()
Magic constants
,包括__DIR__
和__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 )))=" ../../../"
你可以试试吧。