在php file_get_contents中获取referer

时间:2013-03-21 12:26:05

标签: php url

我在www.aaa.com/file.php

上有一些文件

我在www.saveme.com/file2.php

上有另一个档案

在第二个内部,我以这种方式呼叫第一个file_get_contents('www.aaa.com/file.php');

我希望www.aaa.com/file.php获取已调用它的网站的网址。

有可能吗?

www.lol.com来电www.aaa.com/file.php - >得到www.lol.pl

www.another.com称之为 - >得到www.another.com

像'谁从另一台服务器打电话给我,以及它是什么服务器?'

3 个答案:

答案 0 :(得分:14)

实际上,不,因为它不像Payalytic船长所说的那样明显,这里是如何做到的。

$referer = "http://abc.info";
$opts = array(
       'http'=>array(
           'header'=>array("Referer: $referer\r\n")
       )
);
$context = stream_context_create($opts);
file_put_contents($img, file_get_contents($node_img, false, $context)); 

来源: http://thuannvn.blogspot.be/2011/12/how-to-set-referer-in-php.html

在对官方文件感到头疼之后,我没有对引用者说一句话,我终于在网上做了经典搜索,并立即发现了这一点。万岁!

编辑:文档说header应该是一个字符串(http://be2.php.net/manual/en/context.http.php)。人们应该检查它是否也适用于数组。

或者,您还应该能够从收到的请求的IP中检索域名。 (并非总是如此)

您也可以使用curl

答案 1 :(得分:0)

您需要将引荐来源作为参数传递给file_get_contents

file_get_contents('http://www.aaa.com/file.php?referrer='.urlencode($referrer));

否则第二台服务器无法获得原始推荐人。

答案 2 :(得分:-2)

请参阅http://php.net/manual/en/function.file-get-contents.php,了解有关get_headers()和$ http_response_header的信息。