【PHP】fire_get_contentsでユーザーエージェントを変更しよう
fire_get_contentsとは
fire_get_contentsの記事ではないので、詳しくは説明しませんが、いわゆる「サイト/ページの出力を文字列で返す」ものです。
例えば、
ですが、Googleはユーザーエージェントによりサイトを切り替えているためユーザーエージェントがないアクセスでは古いブラウザ専用のHTMLが送信されてしまいます。
なので、ユーザーエージェントを種類ブラウザ等に偽造送信し、通常ブラウザ用のサイトにする必要があります。
$file=file_get_contents("https://google.com");
echo $file;
の処理だとgoogle.comのHTMLが返ります。ですが、Googleはユーザーエージェントによりサイトを切り替えているためユーザーエージェントがないアクセスでは古いブラウザ専用のHTMLが送信されてしまいます。
なので、ユーザーエージェントを種類ブラウザ等に偽造送信し、通常ブラウザ用のサイトにする必要があります。
ユーザーエージェントを変更する方法
このコードで自分の思い通りのユーザーエージェントにすることができます。
例えば、アクセスしたユーザーのユーザーエージェントでアクセスしたい場合は次のようにします。
簡単にできますね。
使うときはいろいろとありそうですが覚えておくとかなりいいものと思います。
皆さんもぜひ使ってみてください。
$url="https://google.com";
$sitehtml = file_get_contents($url, false, stream_context_create(array(
'http'=>array(
'method'=>"GET",
'header'=>"User-Agent: ここにユーザーエージェントを記述",
'ignore_errors'=>true,
),
)));
例えば、アクセスしたユーザーのユーザーエージェントでアクセスしたい場合は次のようにします。
$url="https://google.com";
$sitehtml = file_get_contents($url, false, stream_context_create(array(
'http'=>array(
'method'=>"GET",
'header'=>"User-Agent: ".$_SERVER['HTTP_USER_AGENT'];,
'ignore_errors'=>true,
),
)));
簡単にできますね。
使うときはいろいろとありそうですが覚えておくとかなりいいものと思います。
皆さんもぜひ使ってみてください。