7

I've got some file on www.aaa.com/file.php

I've got another file on www.saveme.com/file2.php

And inside this 2nd one I call 1st one this way file_get_contents('www.aaa.com/file.php');

I want www.aaa.com/file.php to get url of site that has called it.

Is it possible?

www.lol.com calls www.aaa.com/file.php -> it gets www.lol.pl

www.another.com calls it -> it gets www.another.com

Something like 'who've called me from another server and what server was it?'

4

3 回答 3

17

实际上,不,因为它并不像 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

看了官方文档头疼,没说referers,终于在网上做了一个经典的搜索,马上就找到了。万岁!

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

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

你也可以用curl

于 2013-09-11T20:28:07.350 回答
-1

您需要将引用者作为参数传递给file_get_contents

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

否则,第二台服务器无法获取原始引荐来源网址。

于 2013-03-21T12:28:23.977 回答
-2

请参阅http://php.net/manual/en/function.file-get-contents.php,您将在其中找到有关 get_headers() 和 $http_response_header 的信息。

于 2013-03-21T12:42:49.233 回答