Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP文件存在,无法工作?_Php_File_Exists - Fatal编程技术网

PHP文件存在,无法工作?

PHP文件存在,无法工作?,php,file,exists,Php,File,Exists,我想检查页面是否存在。我的文件是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."; } 但它总是返回“抱歉,

我想检查页面是否存在。我的文件是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.";
}
但它总是返回“抱歉,这篇文章不存在。”
如何修复此问题?

不要将查询字符串传递给它

$filecheck = 'article.php';

不要将查询字符串传递给它

$filecheck = 'article.php';

这是因为没有名为:article.php?id=$id的文件


可能有一个名为:article.php的文件:)

这是因为没有名为:article.php?id=$id的文件


可能有一个名为:article.php的文件:)

如果它们是物理页面而不是动态创建的内容,请使用以下方式:

$filecheck = "article_1.php"

if (file_exists($filecheck)) {
echo "This article exists.";
} else {
echo "Sorry this article does not exist.";
}

否则,请检查ID是否在数据库中。

如果它们是物理页面而不是动态创建的内容,请使用以下方式:

$filecheck = "article_1.php"

if (file_exists($filecheck)) {
echo "This article exists.";
} else {
echo "Sorry this article does not exist.";
}
否则,请检查ID是否在数据库中。

文件“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.";
}
我希望这有帮助。如果您还需要什么,请告诉我。

文件“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.";
}

我希望这有帮助。如果您还需要什么,请告诉我。

它找不到文件的原因是因为其中有一个查询字符串。如果您碰巧从其他来源获取此数据,并且无法控制是否随querystring一起发送,则可以执行以下操作:

$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

它找不到文件的原因是因为它有一个查询字符串。如果您碰巧从其他来源获取此数据,并且无法控制是否随querystring一起发送,则可以执行以下操作:

$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

为什么要将查询字符串添加到
$filecheck
var?除非指定完整的
protocol://host/path/file
键入url,所有文件函数都将假定您正在执行本地文件操作,并且您的代码正在查找一个文件,其文字名称为
article.php?id=XXX
,不太可能存在。为什么要将查询字符串添加到
$filecheck
var?除非指定完整的
protocol://host/path/file
键入url,所有文件函数都将假定您正在执行本地文件操作,并且您的代码正在查找一个文件,其文字名称为
article.php?id=XXX
,这是不可能存在的。很好的建议!我会检查它是否在数据库中。谢谢!:)好建议!我会检查它是否在数据库中。谢谢!:)如果我的回答解决了你的问题,请考虑接受它作为你的问题的答案。如果我的回答解决了你的问题,请考虑接受它作为你的问题的答案。没有PROs,很高兴它对你有用。如果你对答案感到满意,请考虑接受它作为一个答案。看起来他并不真正关心:“没有任何问题,很高兴它对你有用。”如果你对答案感到满意,请考虑接受它作为答案。看起来他并不真正关心: