Recent Posts

Archives

Blog Ranking

Favorite

ExchangeRate

Update: 2012-05-21 11:00
by ロイター
 

PHP

« Previous Entries
 

pearで携帯の画面サイズ取得

木曜日, 3 月 26th, 2009

携帯サイトをつくろうと思い立ちました。

写真画像の表示がメインのコンテンツです。

当然、端末の画面サイズに合わせて写真もリサイズして表示したい。

各キャリアのサイトにあるスペック一覧のデータをシコシコとテキストファイルに書いて・・・、というやり方では新機種が出るたびに更新作業をしなければいけないので却下。

で、いろいろと調べると、pearに「Net_UserAgent_Mobile」なんてものがあるそうです。

さっそくインストール。

 # pear install -f Net_UserAgent_Mobile
(2009/03/26時点でBETA版なので「-f」が必要)

サンプルのソースを書いてみる。
 —–
 require_once(”Net/UserAgent/Mobile.php”);

 $agent = &Net_UserAgent_Mobile::factory();
 if($agent->isDoCoMo()){
  echo “docomoだよ”;
 }
 elseif($agent->isVodafone()){
  echo “softbankだよ”;
 }
 elseif($agent->isEZweb()){
  echo “auだよ”;
 }
 else{
  echo “それ以外だよ”;
 }

 $disp = $agent->getDisplay()
 $dispsize = $disp->getSize();
 echo “横は” . $dispsize[0] . “で、縦は” . $dispsize[1] . “だよ”;
 —–

OK。縦横とれた。
これは便利だ。

ただ、DoCoMoは端末リスト(XMLファイル)を別途用意しないといけないらしい。インストールされたソースを見ると、たしかに機種情報がベタ書きしてある。これでは最新機種に対応できないね。

このXMLファイルもコマンド一発でつくれるらしい。
CPANのHTTP-MobileAgentにmakexmldocomomapというのがあって、こいつを動かすとサクッと作れるそうです。

ではインストール。
いろいろ足りないのがあって結構てこずった。

 # cpan
 cpan> install HTTP::MobileAgent
 cpan> install XML::SAX::Expat
 cpan> install XML::Simple
 cpan> install HTML::TableExtract
 cpan> install WWW::MobileCarrierJP

インストール完了。
よし、早速やってみよう。

・・・と思ったら

あれ

makexmldocomomapが見つからない。

小一時間探してこんなところに見つけました。

/root/.cpan/build/HTTP-MobileAgent-0.27/bin/makexmldocomomap

で、これを実行すると、

画面にズラズラとXMLが表示される。
お、標準出力じゃん。

 # /root/.cpan/build/HTTP-MobileAgent-0.27/bin/makexmldocomomap > DoCoMoMap.xml

これでOK。

さっきのサンプルソースに1行追加。
 —–
 $_SERVER["DOCOMO_MAP"] = “/path/DoCoMoMap.xml”;
 —–

完璧です。

あとはこのXMLが定期的に更新されるようにしてやれば言うことなしです。

参考URL
Net_UserAgent_Mobileを使って、携帯端末の情報を取得
PEAR::Net_UserAgent_Mobile 3G対応携帯判別(ケータイ判別)
DoCoMoマップ利用 PEAR::Net_UserAgent_Mobile_DoCoMoDisplayMap

↓役に立ったと思ったら・・・

 

 

UTF-8で作成したPHPで文字化け?

水曜日, 1 月 14th, 2009

UTF-8で作成したPHPのプログラムを動かしてみたところ、
頭に変な文字が出力されてしまい、正常に動きませんでした。

ソースの中に出力しそうな箇所はありません。

バイナリエディタで開いてみると、
ファイルの先頭に『EF BB BF』というデータがついてました。

どうやら「BOM(バイト・オーダー・マーク)」というものらしく、
Windowsのメモ帳で作成したUnicodeテキストとかには
標準でついてしまうとのこと。

あぁ、そういえばメモ帳でいじった記憶がある。

BOMなしで保存しなおしたら、
ちゃんと動くようになりました。

↓役に立ったと思ったら・・・

 

 

XML-RPCでWordPressのカテゴリ指定時のバグ

金曜日, 1 月 9th, 2009

XML-RPCでカテゴリを指定するときに、
カテゴリIDに2桁以上の値を指定すると正常に登録されません。

たとえば

カテゴリID = 8 → 8
カテゴリID = 15 → 1
カテゴリID = 24 → 2
カテゴリID = 397 → 3

どうやら一番上の桁だけをとっているようです。

xmlrpc.phpをみてみると、2327行目に、

 —–
 $catids[] = $cat['categoryId'];
 —–

こんな行があるんですが、
$catは配列ではなく、カテゴリIDが直接入っています。
こんな感じで修正します。

 —–
 //$catids[] = $cat['categoryId'];
 $catids[] = $cat;
 —–

一応うまく動いているみたいです。

↓役に立ったと思ったら・・・

 

 

phpとpearでXML-RPCを利用してWordPressへ投稿

金曜日, 1 月 9th, 2009

pearの「XML_RPC」モジュールをインストールしておきます。

pear install XML_RPC

ソースはこんな感じ。

 —–
 $host = “xxx.yyyyy.zzz”; // WordPressのホスト名
 $user = “userid”; // WordPressのユーザーID
 $pass = “password”; // WordPressのパスワード
 $xmlrpc = “/xmlrpc.php”; // XML-RPCのパス
 
 $title = “記事のタイトル”;
 $description = “記事の本文”;
 
 require_once(”XML/RPC.php”);
 
 // クライアント作成
 $client = new XML_RPC_client($xmlrpc, $host, 80);
 
 // メッセージ作成
 $message = new XML_RPC_Message(
  “metaWeblog.newPost”,
  array(
  new XML_RPC_Value(1, “string”),
  new XML_RPC_Value($user, “string”),
  new XML_RPC_Value($pass, “string”),
  [...]

 

PHPのセキュリティ対策

金曜日, 12 月 26th, 2008

このページは結構わかりやすいです。

PHPでのセキュリティ施策についてのメモ - Liner Note 

↓役に立ったと思ったら・・・

 

« Previous Entries