解析file_get_contentsはブラウザヘッダ(user_agent)を模倣してデータを取得する

1137 ワード

ユーザーエージェント(user agentUser Agent)とは、ユーザーエージェント(UA)とは、ユーザーが使用するオペレーティングシステムおよびバージョン、CPUタイプ、ブラウザおよびバージョン、ブラウザレンダリングエンジン、ブラウザ言語、ブラウザプラグインなどをサーバが認識できる特殊な文字列ヘッダです.サイトは、異なるUAを判断することによって、携帯電話アクセスやPCアクセスなど、異なるページを表示することができる.PHPはfile_を使っていますget_contents関数でサイトを採集する場合、ブラウザで見られるのに何も採れない場合があります.これはサーバで設定されている可能性が高いので、User_によるとAgentは、デフォルトPHPのfile_get_contents関数はuaを送信しません.このようなサイトを収集するには、PHPシミュレーションブラウザにUAを送信させ、サイトをだまして正常な内容に戻らなければならない.
実装は以下の通りです:ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)');これはIE 8環境のUAをシミュレートしたもので、もちろん他のものに変えることもできます.例えば、中火狐もこのように読み取ることができます.
 
  
$opts = array(
'http'=>array(
    'method'=>"GET",
    'header'=>"Host: zh.wikipedia.org\r
" .
              "Accept-language: zh-cn\r
" .
              "User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)" .
              "Accept: *//*"
)
);