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_CodeSnifferによるコードチェック

昨日の記事でphpmdという静的解析ツールを調査したんですが、それ以外にも規約にのっとっているかどうかコーディングをチェックできるツールはあります。 PHP_CodeSniffer https://g …

no image

PHPエルビス演算子

PHP エルビス演算子について えープログラムでよくあるnullかどうかをチェックしてnullじゃなければその値を使い、そうじゃなければディフォ値を使うみたいな処理 例えばPOSTを受けてそれを変数で …

no image

PHPでのメール送信&カレントディレクトリ

PHPの小ネタ集です。 Contents1 メールでの改行2 PHPでのカレントディレクトリ メールでの改行 メールで改行する場合、いつも\nでOKだったんですが、本日これで送信すると送れないというバ …

no image

Cakeでのリレーションについて

いまさらながらCakeのリレーションについての復習。 基本から。 Contents1 基本的なリレーション1.1 1対N1.2 N対11.3 動的な紐づけ 基本的なリレーション 下記のようなテーブル構 …

no image

CakePHPのcomponent

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