realpathの嫌な仕様

2011/11/27 | PHPの基本

realpathは引数として与えられた文字列に対してシンボリックリンクや「./」、「../」を解析してちゃんとした(?)絶対パスを返してくれる関数。と単にそれだけだと思ってた。それだけの機能のほうが絶対いいに決まってる。

しかし調べたら違ってた。ちゃんとした絶対パスを返す部分に関してはそれでよかったんだけど、返される絶対パスを実際に走査して、その有無も調べるらしい。そしてその構成が実在しなければエラーになる。そしてアクセス権がなくてもエラーになる。

仕様だからいかんともしがたいのだが、果たしてそんな必要があるのか。ファイルの有無なんてfile_exists関数を使えばいいのであって、realpathは単に正規化したパスを返せばそれでいいのに。

あーむかつく。

pChart

2011/11/24 | pChart

グラフをPHPで描画する必要があり、pChartを使うことにした。最近はFlashやJavaScriptでグラフを描画させるのが流行だが、今回はクライアントのブラウザが貧弱な可能性があるので、サーバサイドで処理をして絵柄を出力する方法を採用することにした。

PHPでのグラフ描画は久しぶり。検索してヒットしたのがpChart。昔使っていたphplotは検索でほとんどヒットせず(あんまり使われてないのか)、jpGraphは有償。ということで、見た目も悪くないpChartを使ってみることにした。

サンプルを試すとNoticeレベルのエラーが発生する。

Notice: Uninitialized string offset: 0 in /home/cwj/cwj.minibird.jp/public_html/pchart/pChart/pData.class on line 127

ということでファイルを修正する。pChart/pData.classの125行目($ID=0;の下)に以下の行を挿入。

if(!is_array($this->Data)){$this->Data=array();}

初期化忘れがあるようだ。これでエラーは出なくなったが、ダウンロードしたファイルに含まれるExample1.phpにアクセスしても何も出力されない。なぜ、なぜ。しかたなくひとつずつ確認していくことにしたら、一番最後のグラフを出力しているところで処理が止まっている。ここ。

$Test->Render(“example1.png”);

やむなくソースコードを確認する。確認したのはpChart/pChart.class。で、見てみたらimagepngでファイル名の引数を与えている!。サーバ内を確認すると、確かにexample1.pngができている。そういうことだったのか。

で、調べてみたら別のメソッドが用意されていたStroke()ってやつ。こちらに書きなおして、再度ウェブからアクセスすると無事グラフが描画された。素人的な考えだけど、サンプルスクリプトはStroke()を使ってくれたほうがいいのに。何も出力されないので、PHPを始めたばかりの人だと、使用を諦めた人もたくさんいるんじゃなかろうか。

 

call

関数.call(オブジェクト[[, 引数1],引数2,…])

applyと似たような感じ。PHPでいうところのcall_user_func_arrayとcall_user_funcみたいな関係っぽい。

apply

関数.apply(オブジェクト[, 引数])

「関数」を実行するのだが、その際、「関数」内で使用する「this」を、「オブジェクト」で代用する、ということらしい。「関数」には「引数」を渡せるらしい(オプション)。

prototypeによる継承よりも簡便らしい。

ウェブ屋の飲み会参加者募集します

2011/11/15 | その他

本年末もウェブ屋の飲み会を開催することになりました(今回で四回目)。参加人数は10人から15人程度の予定。参加資格とか特に無いのですが、基本的にウェブ屋であること。デザイナーでもプログラマでもコーダーでもディレクターでも、ウェブ関連のお仕事をしている方ならOKです。年齢男女国籍問いません(日本語が話せないと楽しくないと思います)。実際には20代半ばから50代半ばの方が参加しています(30代、40代が多いです)。

2011年12月2日金曜日に都内近郊での開催を予定しています。現在若干名の枠がありますので、参加を希望される方はこの記事へのコメントでお名前とメールアドレス、得意分野等をお知らせ下さい。送信いただいたコメントは公開せず、メールで必ず返信します。人数の都合でコメントいただいても参加していただけない可能性もあります。その場合はご了承下さい(必ずメールで返信します)。

では、どうぞよろしくです。


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