この種のリクエストでリファラーを非表示にするためにサードパーティのサービスは必要ありません。必要なものに設定できますが、get_headers
関数ではできません。file_get_contents
とでそれを行うことができますstream_context_create
。あなたの場合、私はそれが次のようなものになると思います:
$URL = 'http://example.com/';
$Context = stream_context_create(array(
'http' => array(
'method' => 'HEAD',
'header' => 'Referer: '
)
));
file_get_contents($URL, false, $Context);
$ResponseHeaders = $http_response_header;
$header = substr($ResponseHeaders[0], 9, 3);
echo $header;
stream_context_create
指定したリクエストのオプションを使用してストリーム コンテキストを作成し、file_get_contents
そのコンテキストを使用してリクエストを実行します。その後、スクリプトは、HTTP URL への HTTP リクエストの後に入力される魔法の変数の一種であり、ローカル スコープでのみ使用できるかどうかをチェック$http_response_header
します。つまり、HTTP リクエストを作成する関数を呼び出した直後に使用できますが、別のスコープでは使用できません。後で実行される関数。の内容$http_response_header
は基本的に関数の結果と同じget_header()
です。
(上記の例でも使用できGET
ますが、レスポンスボディが必要ない場合はHEAD
、ボディなしでヘッダーを取得するだけです。ちなみに、PHPは、ボディを含む応答全体を取得get_headers
するリクエストを発行し、その後破棄されます。しかし、GET
受信サーバーまたはスクリプトがHEAD
リクエストを処理できない場合や、リクエストとは異なるアクションを実行するGET
場合があります。実際に試してみて、何がうまくいくかを確認してください。)