【PHP】file_get_contentsでリンク元などのヘッダ情報を変更する

公開日: : PHP

スポンサーリンク

file_get_contentsで他サイトの情報を読み取る際などでリンク元を明記したい場合は以下のようになります。

//ファイルA:読み取る側(別サーバー)

$uri = "http://mementoo.info/test/mailsendtest.php";
$referer = "http://example.com";
$options = array(
    'http' => array(
        'method' => "GET",
        'header' => "Referer: ".$referer
    )
);
$context = stream_context_create($options);
$html = @file_get_contents($uri);

これは当サイトとは別のサーバーから当サイトの「http://mementoo.info/test/mailsendtest.php」(現在は削除しています。)にアクセスした様子です。

stream-context-createによりヘッダ情報などを連想配列状にしたオプションを設定したストリームコンテキストを作成し、file_get_contentsの際に引数で渡すことでリファラを設定しています。

他にもAPIを使用する際、ユーザーエージェントも一緒にオプションで指定してあげるなどの使い道があるそうです(下記リンク参照)。

「mailsendtest.php」はリファラ元を取得したらメールで飛ばすだけの確認用のスクリプトです。ブラウザでの表示でもcronでの実行でも同様の結果が得られるか確認するためこのようなメール形式にしました。以下参照。

//ファイルB:読み取られる側(ttp://mementoo.info/test/mailsendtest.php)

mb_language("japanese");
mb_internal_encoding("utf-8");
 
$referer = $_SERVER["HTTP_REFERER"];

$to = "info@mementoo.info";
$subject = "referertest";
$body = "access from:".$referer;
$from = "me";
 
//メール送信
mb_send_mail($to,$subject,$body,"From:".$from);

ファイルAをブラウザで開いた場合でもcronで実行指定した場合でも送られてきたメールを確認すると指定したところのものになりました。

mailsendtest

スポンサーリンク
Amazon
  • このエントリーをはてなブックマークに追加

関連記事

【PHP・MySQL】Fatal error: Class ‘mysqli’ not found

Fatal error: Class 'mysqli' not found このエラーはmys

記事を読む

PEARをレンタルサーバーにインストールする

共用レンタルサーバーにPEARをインストールしたときにてこずったところについてメモ。今回レンタルサー

記事を読む

【PHP】Simple HTML DOM Parserを使って指定Webページの記事タイトルを取得する

PHPのスクレイピングライブラリのSimple HTML DOM Parserを使って指定Webペー

記事を読む

【PHP】WebAPIのJSONファイルを読み込む

WebAPIでJSONファイルを使う機会があったので使い方をメモ。最近ではWebAPIはSNSやブロ

記事を読む

PHPでページリロードをしようと思ったができなかったので

header("Location: ".$_SERVER); とすればページをリロードでき

記事を読む

【PHP】クラスの配列をソートする

クラスのメンバに応じて配列をusortでソートします。クラス内の関数でソートする場合は下のようにする

記事を読む

【twitteroauth】TwitterAPIで検索して特定のつぶやきをしたユーザーを取得する方法【PHP】

twitteroauthを利用してワード検索して特定のつぶやきをしたユーザーを取得する方法です。tw

記事を読む

no image

【PEAR】Services_AmazonのItemLookupで複数ASINを指定する

Amazon Product Advertising APIをPEARのServices_Amazo

記事を読む

スクレイピングをサポートしてくれるAPI【kimono】

kimonoというスクレイピングをAPI化してくれるという素晴らしいサービスがあります。

記事を読む

Twitterアカウントのアクセストークンを取得する方法

TwitterでBotなどを作るときアクセストークンとコンシューマキーが必要になります。 ざっくり

記事を読む

【Laravel5】既存のDBからデータを取得して表示する

はじめに 今まで作ったWebサイトをLaravel5で見れるようにし

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Pyth

Intel Corei7-7700TでHTC Viveの動作確認

はじめに HTC ViveというVRヘッドセットで遊んでみたのでその

【Python】フォルダ内のカッコ付き数字ファイルを一括でリネームするスクリプト

はじめに タイトルどおりなのですが、指定フォルダ内のファイルのファイ

OpenCV3.1のTracking APIでトラッキングを試す

はじめに 先日OpenCV3.1をopencv_contrib付きで

パソコンを複数台使う際便利なツール

はじめに 先日、機械学習用にGPUを積んだBTOパソコンを購入しまし

OpenCV3.1をopencv_contrib付きでVisual Studio2013でビルドしてインストールする

はじめに OpenCV3.1でトラッキングがしたいと思いインストーラ

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑