我想检查页面是否存在。我的文件是article.php。文章的URL是article.php?id = 1 article.php?id = 2等。但是当我以这种方式检查它时它不起作用:
$filecheck = "article.php?id=$id";
if (file_exists($filecheck)) {
echo "This article exists.";
} else {
echo "Sorry this article does not exist.";
}
但它总是返回“抱歉这篇文章不存在”。 我怎么能解决这个问题?
答案 0 :(得分:4)
不要将查询字符串传递给它。
$filecheck = 'article.php';
答案 1 :(得分:1)
这是因为没有名为:article.php?id = $ id
的文件可能有一个名为:article.php的文件:)
答案 2 :(得分:1)
如果它们是物理页面而不是动态创建的内容,请使用以下方式:
$filecheck = "article_1.php"
if (file_exists($filecheck)) {
echo "This article exists.";
} else {
echo "Sorry this article does not exist.";
}
否则请检查ID是否在DB中。
答案 3 :(得分:1)
文件“article.php?id = $ id”将不存在,因为它不是物理文件。
我假设你使用$ id来查找数据库中存在的文章。如果是这种情况,则file_exists函数不是您所需要的。
您需要做的是编写一个快速的MySQL语句来检查文章是否存在,然后从那里开始。
或许这样的事情:
$query = "SELECT * FROM articles WHERE id='$id'";
$result = mysql_query($query);
// Check if result is there (ie article exists)
if ($result) {
echo "This article exists.";
} else {
echo "Sorry this article does not exist.";
}
我希望有所帮助。如果您还有其他需要,请告诉我。
答案 4 :(得分:1)
它找不到文件的原因是因为你有一个查询字符串。如果您偶然从其他来源获取此数据并且无法控制是否随其一起发送查询字符串,那么您可以执行此操作:
$yourFile = 'article.php?id=$id'; // Or wherever you get this value from
$yourFile = strstr( $yourFile , '?' , TRUE );
echo $yourFile; // now has a value of article.php