PHPで携帯のキャリア判別をするには、Net_UserAgent_MobileというPEARモジュールを使えば楽に判別ができる。
使い方は以下のサイトが参考になりました。
http://www.phppro.jp/school/pear/vol10/1
ためしに、携帯のUserAgentでget_browser()やNet_UserAgent_Detectを使って情報を取得しようとしてもほとんど使えない状態だったので、素直にNet_UserAgent_Mobileを使ったほうがいいでしょう。
isMoblie()というメソッドが用意されているので、とりあえず、携帯とそれ以外の端末を判別しておいて、携帯以外の場合はget_browser()やNet_UserAgent_Detectを使ってプラットフォームを取得すればいい。
2009年3月26日木曜日
PHPでブラウザ判別(get_browser() & Net_User_Agent_Detect)
PHPにはブラウザ判別に利用できるget_browser()という組込み関数が標準で用意されている。
ただ、そのままの環境では使えないので、事前にいくつか用意が必要なのでメモ。
(その1)
Browser Capabilities Projectのphp_browscap.iniをダウンロードして、サーバに配置。
(その2)
php.iniに以下を追記
-----ここから-----
[browscap]
browscap =/path/to/php_browscap.ini
-----ここまで-----
php.inではなく、.htaccessで以下のように記述しても動かないので注意。
-----ここから-----
php_value browscap /path/to/php_browscap.ini
-----ここまで-----
(その3)
HTTPサーバを再起動
PHPサンプル
-----ソース-----
-----ここまで-----
----出力-----
-----ここまで------
ちゃんとChromeの判別ができてる。最近入れたIE8ちゃんと判別してた。
php.iniを利用できない場合は、Net_User_Agent_Detectというモジュールで判別できそう。
使い方はこんな感じ。
-----ここから---
---ここまで---
get_browser()とく比較すると情報量が圧倒的に少ないけど、php.iniを編集できる環境じゃない場合は、ブラウザとプラットフォーム取得くらいは使えそう。
ただ、そのままの環境では使えないので、事前にいくつか用意が必要なのでメモ。
(その1)
Browser Capabilities Projectのphp_browscap.iniをダウンロードして、サーバに配置。
(その2)
php.iniに以下を追記
-----ここから-----
[browscap]
browscap =/path/to/php_browscap.ini
-----ここまで-----
php.inではなく、.htaccessで以下のように記述しても動かないので注意。
-----ここから-----
php_value browscap /path/to/php_browscap.ini
-----ここまで-----
(その3)
HTTPサーバを再起動
PHPサンプル
-----ソース-----
<?php
$platform = get_browser(null, true);
print_r($platform);
?>
-----ここまで-----
----出力-----
Array
(
[browser_name_regex] => ^mozilla/5\.0 (windows; u; windows nt 5\.1; .*) applewebkit/.* (khtml, like gecko) chrome/1\.0\..* safari/.*$
[browser_name_pattern] => Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*
[parent] => Chrome 1.0
[platform] => WinXP
[browser] => Chrome
[version] => 1.0
[majorver] => 1
[win32] => 1
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[javaapplets] => 1
[javascript] => 1
[cssversion] => 3
[supportscss] => 1
[minorver] => 0
[alpha] =>
[beta] =>
[win16] =>
[win64] =>
[backgroundsounds] =>
[cdf] =>
[vbscript] =>
[activexcontrols] =>
[isbanned] =>
[ismobiledevice] =>
[issyndicationreader] =>
[crawler] =>
[aol] =>
[aolversion] => 0
)
-----ここまで------
ちゃんとChromeの判別ができてる。最近入れたIE8ちゃんと判別してた。
php.iniを利用できない場合は、Net_User_Agent_Detectというモジュールで判別できそう。
使い方はこんな感じ。
-----ここから---
<?php
require_once("Net/UserAgent/Detect.php");
echo Net_UserAgent_Detect::getBrowserString();
echo Net_UserAgent_Detect::getOSString();
?>
---ここまで---
get_browser()とく比較すると情報量が圧倒的に少ないけど、php.iniを編集できる環境じゃない場合は、ブラウザとプラットフォーム取得くらいは使えそう。
2009年3月8日日曜日
phpDocumentorのメモ
PHPのソースからAPIドキュメントを出力するツール「phpDocumentor」を調べたのでメモ。
JavaでのJavaDocにあたるもの。PHPソース内の記述もJavaDocとほぼ同じ。
インストールはpearから。
-----インストール例-------
>pear install --alldeps phpdocumentor
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update
ear.php.net" to update
downloading PhpDocumentor-1.4.2.tgz ...
Starting to download PhpDocumentor-1.4.2.tgz (2,421,028 bytes)
....................................................................done: 2,421
028 bytes
downloading XML_Beautifier-1.2.0.tgz ...
Starting to download XML_Beautifier-1.2.0.tgz (12,948 bytes)
...done: 12,948 bytes
downloading XML_Parser-1.3.2.tgz ...
Starting to download XML_Parser-1.3.2.tgz (16,260 bytes)
...done: 16,260 bytes
downloading XML_Util-1.2.1.tgz ...
Starting to download XML_Util-1.2.1.tgz (17,729 bytes)
...done: 17,729 bytes
install ok: channel://pear.php.net/PhpDocumentor-1.4.2
install ok: channel://pear.php.net/XML_Parser-1.3.2
install ok: channel://pear.php.net/XML_Util-1.2.1
install ok: channel://pear.php.net/XML_Beautifier-1.2.0
-----インストール例ここまで-------
実行はコマンドラインから。
(実行)
>phpdoc -t ドキュメント出力ディレクトリ -d ソースディレクトリ -o HTML:frames:earthli
※ 出力はHTML::frames:earthliがお気に入り
テーマ(?)のテンプレートが日本語対応になっておらず、出力したファイルが文字化けするので、以下のテンプレートを修正する。
ディレクトリ([php install directory]/data/PhpDocumentor/phpDocumentor/Converters/HTML/タイプ/templates/テーマ/templates)以下にあるheader.tplファイルのISO-8859-1と書かれている所を文字コードにあわせて修正
PDF/CHMもためしたが、PDFは文字化け、CHMはファイルの生成がされなかった。
[タイプ/テーマ]
frames(フレームあり)
default
DOM
earthli
l0l33t
phpdoc.de
phpedit
phphtmllib
Smarty(フレームなし)
HandS
PHP
default
(参考URL)
http://caspar.hazymoon.jp/php/phpDocumentor/
JavaでのJavaDocにあたるもの。PHPソース内の記述もJavaDocとほぼ同じ。
インストールはpearから。
-----インストール例-------
>pear install --alldeps phpdocumentor
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update
ear.php.net" to update
downloading PhpDocumentor-1.4.2.tgz ...
Starting to download PhpDocumentor-1.4.2.tgz (2,421,028 bytes)
....................................................................done: 2,421
028 bytes
downloading XML_Beautifier-1.2.0.tgz ...
Starting to download XML_Beautifier-1.2.0.tgz (12,948 bytes)
...done: 12,948 bytes
downloading XML_Parser-1.3.2.tgz ...
Starting to download XML_Parser-1.3.2.tgz (16,260 bytes)
...done: 16,260 bytes
downloading XML_Util-1.2.1.tgz ...
Starting to download XML_Util-1.2.1.tgz (17,729 bytes)
...done: 17,729 bytes
install ok: channel://pear.php.net/PhpDocumentor-1.4.2
install ok: channel://pear.php.net/XML_Parser-1.3.2
install ok: channel://pear.php.net/XML_Util-1.2.1
install ok: channel://pear.php.net/XML_Beautifier-1.2.0
-----インストール例ここまで-------
実行はコマンドラインから。
(実行)
>phpdoc -t ドキュメント出力ディレクトリ -d ソースディレクトリ -o HTML:frames:earthli
※ 出力はHTML::frames:earthliがお気に入り
テーマ(?)のテンプレートが日本語対応になっておらず、出力したファイルが文字化けするので、以下のテンプレートを修正する。
ディレクトリ([php install directory]/data/PhpDocumentor/phpDocumentor/Converters/HTML/タイプ/templates/テーマ/templates)以下にあるheader.tplファイルのISO-8859-1と書かれている所を文字コードにあわせて修正
PDF/CHMもためしたが、PDFは文字化け、CHMはファイルの生成がされなかった。
[タイプ/テーマ]
frames(フレームあり)
default
DOM
earthli
l0l33t
phpdoc.de
phpedit
phphtmllib
Smarty(フレームなし)
HandS
PHP
default
(参考URL)
http://caspar.hazymoon.jp/php/phpDocumentor/
ieHTTPHeaders
HTTPヘッダー情報を知りたいときにはいつもFirefoxのLive HTTP Headersというプラグインを使っているのですが、IEでHTTPヘッダーを表示するプラグインとして「ieHTTPHeaders」があるのを知ったのでとりあえずメモ。
登録:
投稿 (Atom)