skillup

技術ブログ

PHP

携帯サイト取得手法

投稿日:

PHPでスクレイピングの仕事をよくやるんですが、携帯サイトを取得してほしいという要望があり、少し調査をすることに。

携帯サイトといってもドメイン以下のディレクトリで/で区切ってsample.domain.jp/sp/XXXなどと携帯サイト自体を分離している作りのところもあれば、URL自体完全に一緒のところもあります。

User-Agentの設定

PHP云々の前にWebアプリケーションが携帯サイトか否かを判定する場合どのように判定しているでしょうか。

これはHTTPリクエストを飛ばす際に、User-Agentというパラメータがあり、この中にクライアントの情報が入っています。

Google ChromeやFireFoxのヘッダーのデバッガでみれば下記のような情報が入っています。

User-Agent一覧

http://www.openspc2.org/userAgent/

ようはここでどんな端末からアクセスしているかをみていますので、これを書き換えてあげればOKです。

ini_setでUser-Agentを書き換える

ini_setでUser-Agentを設定します。

ただこれですとファイル中のAgentがすべて携帯サイトになってしまいます。

http://worktoolsmith.com/2012/02/php-http-user-agent/

HTTP_Requestを使う場合

http://blog.livedoor.jp/rout1783/archives/51125738.html

その他cURL関数など

http://xirasaya.com/?m=detail&hid=320

またブラウザで携帯サイトをみる場合はfirefoxのuser agent switcherというプラグインがかなり使えます。

File Mobile Simulatorが有名で以前はこれを使っていたのですが設定が面倒になっており、上記のプラグインのほうが使えましたね・・・。

-PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

PHPのPDF出力に関するエラー

PHPからFPDFなどを使ってPDFを出力するプログラムを書いたんですが、下記のエラーでかなり悩まされました。 FPDF error: Some data has already been outpu …

no image

CakePHPのcomponent

CakePHPのComponentについて。 CakePHPでは各コントローラに共通の処理をComponentとしてモジュール化することができます。 わかりやすいところでいえば認証のAuth,Sess …

no image

composerでのライブラリ登録

今回はPHPのパッケージ管理ツールであるcomposerへのライブラリ登録を。 Contents1 ライブラリの作成2 packagistへの登録3 呼び出す側3.1 composer.json3.2 …

no image

PHPでのリフレクション

Javaなどでは結構やりましたが、PHPでも動的にインタンス生成→メソッド呼び出しということをやれるとやれることが一気にふえるため、ちょっとメモです。 Contents1 ソース2 参考リンク ソース …

no image

メモリー不足でのスワップ割り当て

先日、あるサーバーでcomposerをinstallしようとしたところ、 The following exception is caused by a lack of memory or swap, …