php - file_exists() 没有找到文件

标签 php relative-path file-exists

if(file_exists("./squadra/photos/photog.jpg")) {
    echo "### YES ###";
} else {
    echo "### NO ###";
}

如果我在/zones/team.php 上运行这个函数,它就可以工作(它打印 YES)。如果我在/auth/ajax.php 上运行这个函数,它会打印 NO。为什么?

编辑

所以我做了一些实验。

1 - 如果我尝试:

// file on /zones/team.php
if(file_exists($_SERVER['DOCUMENT_ROOT']."/squadra/photos/provag.jpg")) {
    echo "YES";
} else {
    echo "NO";              
}

// file on /auth/ajax.php
if(file_exists($_SERVER['DOCUMENT_ROOT']."/squadra/photos/provag.jpg")) {
    echo "YES";
} else {
    echo "NO";              
}    

两者都说不;

2 - 如果我尝试:

// file on /zones/team.php
if(file_exists("./squadra/photos/provag.jpg")) {
    echo "YES";
} else {
    echo "NO";              
}


// file on /auth/ajax.php
if(file_exists("../squadra/photos/provag.jpg")) {
    echo "YES";
} else {
    echo "NO";              
}

两者都说是;但是在 team.php 上我使用 ./和在 ajax.php 上 ../...为什么这有效???

最佳答案

你的最后一个很可能是因为:

  1. 您正在从位于根目录中的 index.php 调用 zones/team.php。在这种情况下,./ 部分正确标识了您的当前目录。
  2. 对于 ajax,您必须像 auth/ajax.php 这样直接调用它,而不是像 index.php?type=jx&do=auth/ajax 这样的东西会和No.1一样。因此,情况并非如此,您需要先使用 ../ 退出 auth,然后继续使用 squadra/....

尽可能多地使用绝对路径。 PHP 很难计算相对路径(在性能方面)。

关于php - file_exists() 没有找到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4169286/

相关文章:

php - 使用主键引用行进行更新

php - 检查文件是否存在于php中

asp.net - 母版页中 img 标签的相对路径

php - 为什么这些相对路径在 php 中不起作用

javascript - 如何测试 Tabris 中是否存在文件?

php - 取消链接/file_exists 和文件未找到

php - 像调用函数一样调用对象?

php - 在 Doctrine2 实体中存储 "CASE WHEN"条件

php - Laravel 使用变量更改重置密码电子邮件问候语

python - 多级相对导入