【发布时间】:2013-09-06 16:41:34
【问题描述】:
我正在尝试根据用户名参数检查 XML 文件是否存在
<?php
$username = $_GET["username"];
$filename = "/documents/$username/data.xml";
if (file_exists($filename)) {
// output documents
} else {
echo "No documents exist in your account.";
}
?>
它继续返回文件不存在。
完整路径: http://example.com/documents/{username}/data.xml
为什么我知道文件存在时它继续返回false?
编辑:我在几年前发表了这篇文章,这绝对不是保存用户数据的最佳方式,但这篇文章的答案可以很好地解释 file_exists()。
【问题讨论】:
-
AFAIK,file_exists 不适用于 URL。您必须将
$filename转换为本地路径。 -
echo $filename;并且权限可能是一个问题。 -
不要将相对于网络服务器根目录的文件路径与相对于磁盘根目录的文件系统文件路径混淆
-
@StrubT 你的意思是而不是
http://example.com/johndoe1/docs.xml,/johndoe1/docs.xml? -
@brandonjordan 是的,完全正确。 (正如其他人指出的那样,您可以使用其他功能进行远程检查,但我认为当您在本地拥有文件时,您应该在本地进行测试,因为它更容易并且可能更快。)
标签: php