我在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
像'谁从另一台服务器打电话给我,以及它是什么服务器?'
答案 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的信息。