【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
  • このエントリーをはてなブックマークに追加

関連記事

【TwitterOauth】特定のつぶやきを取得してリツイート数順やランダム順にする【PHP】

TwitterOauthを利用して特定のワードをつぶやいたデータを取得してそれをリツイート順なりに並

記事を読む

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

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

記事を読む

【PHP】Simple HTML DOM Parserを使って属性の値を取得する

PHPでSimple HTML DOM Parserを使ったスクレイピングで指定の属性の値を取得する

記事を読む

ニコニコ動画のURLリンクから外部プレイヤーのスクリプトに正規表現で置換する

ニコニコ動画の動画のアドレスを抽出して外部プレイヤー貼りつけソースのスクリプトに変換するソースです。

記事を読む

【PHP】usortのfunctionでCannot redeclare(再定義)される

初心者なのでusortがいいものかどうなのかよくわからないのですが、usortの関数定義をするとたま

記事を読む

no image

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

Amazon Product Advertising APIをPEARのServices_Amazo

記事を読む

【PHP】正規表現で日付文字列から曜日を削除する

例えば次のように曜日が記述された日付があったときその曜日部分を削除する場合のときの正規表現は次のよう

記事を読む

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

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

記事を読む

TwitterAPIでデベロッパー登録しようとすると携帯情報を追加しろと出る件について

TwitterAPIのデベロッパー登録ページ(https://dev.twitter.com)でアプ

記事を読む

【PHP】Twitterのツイート数やはてぶ数を取得する

指定URLのTweet数の取得 Twitterでツイート数を取得するには指定のURLにアクセスする

記事を読む

NVIDIA DIGITSをSupervisorを使って自動起動する

はじめに 先日Ubuntu14.04にDIGITS 5をGPUなしP

【2017年度】GeForce 1080 Ti搭載BTOパソコン比較

はじめに 最近ディープラーニング用にGPUのないPCにDIGITSを

Windows用のシンプルなストップウォッチソフト紹介

Windows(10)でも使える使いやすいKAZAMITimerという

MNISTをDIGITS 5のCPUのみで試す(GPUなし)

はじめに DIGITSを使えばGUI操作で簡単にディープラーニングが

Windowsユーザが初めてMacBookを購入したときの注意点や感想

最近12インチのMacBookを購入しました。今までWindowsしか

Redmine3.2をUbuntu14.04にインストールして躓いた所についてメモ

はじめに Ubuntu14.04 ServerにRedmine3.2

UWSCを使ったソフト自動立ち上げ【SoftEther VPN Server】

やりたいこと 最近SoftEtherという筑波大学発のベンチャー企業

→もっと見る

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