携帯開発と画面サイズ

携帯用サイトの開発を請負中。今までの場合は、大抵画面の横幅サイズ240ピクセルで決め打ちで問題なかったが、今回の場合は画像が重要なので、機種判別して画面サイズを考慮するように開発したい。

PHPで携帯機種判別というと手堅いところで行けばPEARライブラリを使うのが得策だ。使用するライブラリはNet_UserAgent_Mobile。

http://pear.php.net/package/Net_UserAgent_Mobile/

便利なツールではあるが、最終更新日が本日現在で2009年6月23日になっている(stableになったのね)。つまりそれ以降の機種情報は含まれていないことになる。実はプログラムの更新はなくて、機種情報は更新されていたりするのか、と思って一式ダウンロードして確認してみたけれど、残念ながら最新機種の情報はやはりなかった。ここは自作するしかないだろう。

携帯キャリア各社のウェブサイト上で、一応画面サイズの情報が公開されているようだ。それらは以下のリンク先を参照。

WILCOMやemobileは考慮しないけど一応掲載。emobileはリンク先URLに日付が入っているので将来はURLが変わっていると思う(まぁ、他のキャリアも未来永劫同じURLとは限らないけれど)。

ここから自作してみようかな。

MySQLを扱うGUIツール

2010/10/27 | MySQL

現在案件の提案中。ほぼ受注できそうな感じなのだが、クライアントのリクエストの一つに「データベース処理に時間がかかるかも」と思われる部分があった。基本的にこういった不確定要素をもったまま受注してしまうのは嫌いなので、なるべく今のうちに処理したい。ということで、SQL文を書いてテストしてみることにした。

しかしテストSQL文を実行させるにあたって、なるべく本番と同等の条件にしたい。そう考えると、データとして100万件程度をINSERTしておかなければならなさそう。さてどうするか。

まずエクセルを使って乱数処理させた。できあがったデータをテキストファイルにし、PHPでSQL文に整形した(最初から全部SQL文にしたほうが早かった)。次にこのSQL文を実行しなくてはならない。

最初はphpMyAdminのインポート機能を使ってみた。しかし実行時間でエラーになる。時間がかかりすぎると他の作業に差し支えそうなので、Windows用のGUIツールを使うことにした。さて何を使おうか。いろいろ考えた結果MySQL Workbenchを使うことにした。コマンドラインからやっても良かったのだけれど、便利ツールはなるべく使いたい(Linuxならあきらめてコマンドラインだけれど)。

まずはソフトウェアをダウンロードしてインストール。

ダウンロードはこちらから

そしてSQLを実行。少々使い方がわからない部分があって悩んだけど、結果としてうまくいった。100万件のデータを登録するのに5分ちょっと位だったと思う。

とっても便利だし、インターフェイスもかっこいい。どうせ使うツールなら、こういうクールなアプリがいい。

前後のクォーテーションを取り除く

文字列の前後にダブルクォーテーションやシングルクォーテーションがくっついた状態で文字列が渡されることがある。そんな時に不要な前後の文字列を取り除く便利な方法を見つけた。

$moji=trim($moji,”\x22 \x27″);

trim関数に第2引数を与えて、取り除きたい文字列を指定すればよい。簡単。

都道府県コード

2010/09/30 | その他

都道府県のプルダウンを作るとき、検索して、見つかった表をコピペして、整形して・・・。毎回そういう処理をしていたけど、馬鹿らしくなったので、リストを作ってメモしておくことにする。JIS番号がついているということで。

1,北海道,北海道

2,青森県,青森

3,岩手県,岩手

4,宮城県,宮城

5,秋田県,秋田

6,山形県,山形

7,福島県,福島

8,茨城県,茨城

9,栃木県,栃木

10,群馬県,群馬

11,埼玉県,埼玉

12,千葉県,千葉

13,東京都,東京

14,神奈川県,神奈川

15,新潟県,新潟

16,富山県,富山

17,石川県,石川

18,福井県,福井

19,山梨県,山梨

20,長野県,長野

21,岐阜県,岐阜

22,静岡県,静岡

23,愛知県,愛知

24,三重県,三重

25,滋賀県,滋賀

26,京都府,京都

27,大阪府,大阪

28,兵庫県,兵庫

29,奈良県,奈良

30,和歌山県,和歌山

31,鳥取県,鳥取

32,島根県,島根

33,岡山県,岡山

34,広島県,広島

35,山口県,山口

36,徳島県,徳島

37,香川県,香川

38,愛媛県,愛媛

39,高知県,高知

40,福岡県,福岡

41,佐賀県,佐賀

42,長崎県,長崎

43,熊本県,熊本

44,大分県,大分

45,宮崎県,宮崎

46,鹿児島県,鹿児島

47,沖縄県,沖縄

1,北海道,北海道
2,青森県,青森
3,岩手県,岩手
4,宮城県,宮城
5,秋田県,秋田
6,山形県,山形
7,福島県,福島
8,茨城県,茨城
9,栃木県,栃木
10,群馬県,群馬
11,埼玉県,埼玉
12,千葉県,千葉
13,東京都,東京
14,神奈川県,神奈川
15,新潟県,新潟
16,富山県,富山
17,石川県,石川
18,福井県,福井
19,山梨県,山梨
20,長野県,長野
21,岐阜県,岐阜
22,静岡県,静岡
23,愛知県,愛知
24,三重県,三重
25,滋賀県,滋賀
26,京都府,京都
27,大阪府,大阪
28,兵庫県,兵庫
29,奈良県,奈良
30,和歌山県,和歌山
31,鳥取県,鳥取
32,島根県,島根
33,岡山県,岡山
34,広島県,広島
35,山口県,山口
36,徳島県,徳島
37,香川県,香川
38,愛媛県,愛媛
39,高知県,高知
40,福岡県,福岡
41,佐賀県,佐賀
42,長崎県,長崎
43,熊本県,熊本
44,大分県,大分
45,宮崎県,宮崎
46,鹿児島県,鹿児島
47,沖縄県,沖縄

IEで「文字が正しくありません」

2010/09/25 | JavaScript/Ajax

最近はjQueryを使った動きのあるフロントエンドを作る作業が多いのだが、先日IEで問題が発生した。

自分の場合、フロントエンドの開発の際はFireFoxを使っている。JavaScriptのデバッグ処理は、なんといってもFireBugが便利だからだ。以前はJavaScriptの開発がとても嫌いだったのだが、おそらくIEで表示されるJavaScriptのエラーメッセージの意味が全くもって不明だったことも一因だと思っている。

フレームワークを使わない場合は、クロスブラウザ対応で問題がでることが多かったが、最近はそのへんをフレームワークが全て吸収してくれるので便利だ。

さて、本筋に戻って開発段階で問題なく動いていたJavaScriptをクロスブラウザ環境で一通りテストしてみて問題が起きた。FireFox、Chrome、Safariとここまでは順調だったが・・・、IEでつまづいた。「文字が正しくありません」。

おかしい。開発段階でも万一を考えて時々IEでもチェックしていたのだから、今更動かないわけがない。しかし実際は動かないので悩んでしまった。訳がわからないことに、サーバにアップロードすると動くけどローカルPC上では動かない。ウェブを検索すると、いくつか原因となりそうな事項があるような感じ。

  • JavaScript外部ファイルのパスの指定が間違っている
    いやいや、初心者でもないのでさすがにそういうミスはありえない。というか一番最初に調べてるし。
  • JavaScript外部ファイルの文字コードとHTMLの文字コードが違う
    ドキドキして調べたけど、そういえばプログラムに日本語使ってない。一部コメントには日本語があるけれど・・・。ってそれでももちろん問題ない。文字コードはあわせてある。

と、虱潰しにあたってみたけど、まったくわからない。そしてふと思いついた。

「キャッシュ壊れてないか」

IEのキャッシュを削除して、再度ページを開き直すと問題なく動いた。そういえばさっきの状態では、本来なら「セキュリティ保護のため・・・」というローカルファイルにJavaScriptが埋め込まれている場合に表示されるエラー自体が出ていなかった(ちょっとおかしいなぁとおもっていたのだが)。

ということで原因はキャッシュが壊れていたことだったようだ。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net