7

私はいくつかのファイルを持っていますwww.aaa.com/file.php

別のファイルがありますwww.saveme.com/file2.php

そして、この2番目のものの中で、私はこのように1番目のものを呼び出しますfile_get_contents('www.aaa.com/file.php');

www.aaa.com/file.phpそれを呼び出したサイトのURLを取得したい。

出来ますか?

www.lol.com呼び出しwww.aaa.com/file.php -> 取得www.lol.pl

www.another.com呼び出す -> 取得するwww.another.com

「別のサーバーから私に電話をかけたのは誰ですか。それはどのサーバーでしたか?」のようなものです。

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

リファラーについて一言も言わずに公式ドキュメントで頭痛の種になった後、私は最終的にWebで古典的な検索を行い、すぐにこれを見つけました. 万歳!

編集:ドキュメントは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));

そうしないと、2 番目のサーバーが元のリファラーを取得することはできません。

于 2013-03-21T12:28:23.977 に答える
-2

get_headers()と$ http_response_headerについては、http://php.net/manual/en/function.file-get-contents.phpを参照してください。

于 2013-03-21T12:42:49.233 に答える