PHP file_get_contents返回“1”并因请求标头而失败

时间:2015-04-22 01:21:29

标签: php return fopen file-get-contents

我有一个php文件fopen.php,它使用GET请求从另一个php文件d.php检索数据,例如d.php?p=4

当我运行此代码时,我得到了奇怪的结果。它适用于我的本地服务器,但不适用于运行此网站的heartinternet

fopen.php?p=4

echo $_GET['p']."<br/>";

if (!file_exists("d.php")) { 
    die('File does not exist');
}
else
{
    echo file_get_contents("d.php") or die("FAIL");
    echo "<br/>";
    echo file_get_contents(("d.php?p=".$_GET['p'])) or die("FAIL");
}

本页内容如下:

4
1
FAIL

allow_url_fopen已开启

有关可能发生的事情的任何线索?

2 个答案:

答案 0 :(得分:0)

如果要使用file_get_contents发起GET请求,则需要指定完整的URL(包括http://)。

答案 1 :(得分:0)

通过请求d.php?p=4,您应该使用HTTP(s)请求,因此需要一个完整的网址。你的代码在本地服务器上工作很奇怪。

不过,您可能使用它错了,任何HTTP请求都应该用于连接外部资源,在这种情况下,您只需要某种本地包括。 例如:

else
{
    //echo file_get_contents("d.php") or die("FAIL");
    //echo "<br/>";
    //echo file_get_contents(("d.php?p=".$_GET['p'])) or die("FAIL");
    $p = $_GET['p'];
    include 'd.php';
}

d.php,而不是提取$ _GET [&#39; p&#39;],您可以直接使用上述代码块中声明的$p变量