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

関連記事

source_php

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

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

記事を読む

twitterimage

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

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

記事を読む

twitterimage

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

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

記事を読む

api

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

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

記事を読む

source_php

【PHP】ミリ秒を取得することで制限時間を設けて処理をする

PHPで時間制限を設けてタイマーのような処理をするときの制限の付け方として、処理のはじめの時刻と処理

記事を読む

twittersearch

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

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

記事を読む

PAK86_atamakakaerujyosei20140125500-thumb-500xauto-4730

【MySQL・PHP】WHERE句とORDER BY句を使った#1064エラーについて

MySQLで次のようなクエリを出すとエラーとなって帰ってきました。 SELECT * from

記事を読む

source_php

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

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

記事を読む

encodingtype

【PHP】headerでContent-Typeを指定したのに効かない場合の対処法

PHPでサイトマップを作ろうと思い、XML形式のファイルを出力しようとしてheaderを指定したのに

記事を読む

branch-67844_640

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

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

記事を読む

encodingtype
【PHP】headerでContent-Typeを指定したのに効かない場合の対処法

PHPでサイトマップを作ろうと思い、XML形式のファイルを出力しようと

_rtm0919_tp_v
スマホ向け幅固定サイトの回転時の幅対応方法

幅固定サイトでのスマホ回転時Webサイトの横幅を合わせる方法のメモ。

rssimage
【PHP】特定のURLからそのAtomやRSSのフィードを抽出する方法

特定のURLからRSSやATOMのフィードを抽出する方法をメモ。 流

rssimage
フィード抽出ツール(RSS1.0、RSS2.0、atom)

任意URL サイト名 サイトURL RSS1.0

computer_server
格安プラン限定レンタルサーバー機能比較表(2016年)

はじめに  最近新しい共用サーバーをレンタルしようと思い調査およびそ

school_toshokan_hondana
kindle unlimitedが便利だったのでお勧めの使い方など感想メモ

 kindle unlimitedというサービスが8/3からAmazo

TAKEBE055122558_TP_V
寝る前にスマホを見ると斜視になる可能性とその対策

はじめに  寝る前などスマホを横になりながら見続けると斜視になる可能

→もっと見る

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