【发布时间】:2014-07-04 19:20:50
【问题描述】:
我设置了一个输出 JSON 的 PHP 脚本,如下所示:
<?php
// ref.php
print json_encode(array('ref' => $_SERVER["HTTP_REFERER"]), JSON_UNESCAPED_SLASHES);
?>
以上代码是该文件中的所有代码。从另一个文件中,我尝试读取如下输出:
<?php
// ref_index.php
$json = file_get_contents('http://localhost/4test/ref.php');
$data = json_decode($json);
var_dump($data);
?>
上面的代码返回NULL是因为ref.php没有得到$_SERVER["HTTP_REFERER"]的值,所以当我用任何固定值替换$_SERVER["HTTP_REFERER"]时,比如'blahh blahh`它返回json对象。
我的问题是:如何获得 file_get_contents() 的引用,即它运行以从我的应用程序获取数据的 url。
【问题讨论】:
-
每个以
HTTP_开头的条目都来自 HTTP 请求的标头。如果您没有在请求中向ref.php发送Referer标头字段,则不会有$_SERVER["HTTP_REFERER"]。 -
$_SERVER包含调用您的脚本的请求的数据。它与 php 将对您的ref.php脚本执行的 http 请求完全无关。这将是一个完全独立/独立的请求。