php直接路径文件_exists()

php直接路径文件_exists(),php,file,Php,File,我在一个类中使用file_exists(),我想在根目录上以及包含在另一个文件夹中时使用它来查看文件是否存在 我目前有: if (file_exists("./photos/".$this->id.".jpg") ){ // } 当包含在根目录中时,它可以工作,但当包含在文件夹中(对于ajax)时,它不能工作 我能做些什么使它直接(我认为这是正确的词)?由于函数的性质,我无法将我的站点URL放入其中。听起来您只需要将根目录的完整路径放入代码中 if (file_exists("/r

我在一个类中使用file_exists(),我想在根目录上以及包含在另一个文件夹中时使用它来查看文件是否存在

我目前有:

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

//

}
当包含在根目录中时,它可以工作,但当包含在文件夹中(对于ajax)时,它不能工作


我能做些什么使它直接(我认为这是正确的词)?由于函数的性质,我无法将我的站点URL放入其中。

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

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

使用
dirname(\uuuu FILE\uuuu)
来获取php文件本身的路径,无论是直接调用还是包含在内,都是很常见的。所以在你的情况下,你可以写:

if(文件存在(dirname(uuu文件)。'/photos/'.$this->id..jpg'))

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

这样,无论脚本从何处执行,完整的路径(永远不会更改)都将始终有效

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


因此,您可以使用
dirname(\uuuu FILE\uuu)
获取目录的完整路径,该目录包含您写入该
dirname(\uu FILE\uuuuu)
的文件,并从那里开始使用相对路径

例如:

$path = dirname(__FILE__) . '/../../files/photos/'.$this->id.".jpg";
if (file_exists($path)) {
    // 
}
(在测试时,您可能希望首先显示
$path
的值,以确保路径正确)


注意:如果您使用的是PHP>=5.3,则可以使用
\uuuuu DIR\uuuu
而不是
dirname(\uuu FILE\uuuu)


相关手册页:

  • ,包括
    \uuuuu DIR\uuuuuu
    \uuuu FILE\uuuuu
假设“照片”文件夹与包含代码的类处于同一级别:

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

//

}
目录名(文件)=“。/”

目录名(目录名(文件)=“../../”

dirname(dirname(dirname(文件))=“../../../”


你可以试试它。

我如何找到这条路?感谢您必须通过ssh或ftp登录到您的服务器,遍历到webroot,这是您的路径应该开始的地方。因此,如果您的webroot是“public_html”(在大多数主机中很常见),那么您的路径将以/开头,指示您从根目录开始。所以应该是/public\u html/other\u directory/etc/photos/i有这个结构:/classes/class.php和/photosi有这个结构:/classes/class.php和/photos
if (file_exists(dirname(__FILE__)."/../photos/".$this->id.".jpg") ){ 

//

}