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 上 ../...为什么这有效???
最佳答案
你的最后一个很可能是因为:
- 您正在从位于根目录中的
index.php
调用zones/team.php
。在这种情况下,./
部分正确标识了您的当前目录。 - 对于 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/