携帯判別
★ブログ移行のお知らせ
サイトを移行しました。以下をクリックください。
きよしの倶楽部 – 生活を潤わす情報を発信中。GTDを得意としてます。
ーーー
まあ、いろいろ方法はあると思うけど、僕は手っ取り早く、libフォルダの下に
mobileFilter.class.phpというファイルを作成して、
isFirstCall()) {
//
// キャッシュ処理とか携帯向けの色々
//
$agent = $_SERVER['HTTP_USER_AGENT'];
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if(ereg("^DoCoMo", $agent)){
$context->getUser()->setAttribute('device_type', 'dcm', 'subscriber');
}else if(ereg("^J-PHONE|^Vodafone|^SoftBank", $agent)){
$context->getUser()->setAttribute('device_type', 'sbk', 'subscriber');
}else if(ereg("^UP.Browser|^KDDI", $agent) && ereg(".+ezweb\.ne\.jp$", $host))
$context->getUser()->setAttribute('device_type', 'au', 'subscriber');
}
↑auのパターンはホストをわざわざ逆引きして偽装を確認する例。しなくてもいいか??
// execute next filter
$filterChain->execute();
}
}
}
ってな感じで記載して、apps/config/filters.ymlに
mobileFilter:
class: mobileFilter
を追加。
で、viewで判別する時は
getAttribute('device_type', '', 'subscriber') == 'au'): ?>
(auの例)
で判断。actionで判別する時は
if ($this->getUser()->getAttribute('device_type', '', 'subscriber') != 'au' ){
(au以外の例)
で判断する。
symfony×PHP [LLフレームワークBooks] (LLフレームワークBOOKS # 3)
- 作者: 森川穣,亀本大地,田中正裕
- 出版社/メーカー: 技術評論社
- 発売日: 2007/10/01
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 58回
- この商品を含むブログ (19件) を見る
viewがまるきり変わるときは
$this->setTemplate('mobileXXX');
とかして、mobileXXXSuccess.phpでも作っておけばよし。