MAMPにjpgraphを導入してみる

jpgraphとはアシアル社が開発したPHPでグラフを描くためのライブラリです。
非商用目的に限り無料で使用出来ますが、今回は私のサイトのテスト環境として使ってるMAMPにこれを導入してみようと思います。

jpgraphのダウンロード

参考サイト:
PHPでグラフを作ろう! (gd/JpGraph編)

準備

まずphp-gdライブラリがインストールされてるか確認します。
MAMPのローカルサーバー上の適当なphpファイルに

<?php phpinfo(); ?>

と書いてアクセスするとMAMPに導入されているPHPに関する情報が細かく出てきます。
さすがに全部見ると日が暮れそうなほどの分量なのでw、Ctrl+Fを押してブラウザの検索機能を使って「gd」と入れて探してみて、

↑こんなのが出てくればOKです。
私は個別にGDライブラリをインストールした覚えがないのでもし無かったら…ググって導入してみて下さい(汗

またグラフの文字表示にIPAフォントが使われているようなので下記サイトからIPAフォントをダウンロードします。
IPAフォントのダウンロード
↑この中のTTFファイルの4書体パックを利用します。
これをMAMPのフォルダ内の適当なところに入れます。
(私は「/bin/php/(phpのバージョン)/lib/php/(IPAフォントのフォルダ名)」のパスに入れました)

■設定

jpg-config.inc.phpの設定
例えばIPAフォントを「(MAMPのフォルダパス)/bin/php/php5.3.6/lib/php/IPAfont00302/」に入れた場合、

 define('TTF_DIR','/Applications/MAMP/bin/php/php5.3.6/lib/php/IPAfont00302/');
 define('MBTTF_DIR','/Applications/MAMP/bin/php/php5.3.6/lib/php/IPAfont00302/');

と記述します。(MAMPがアプリケーションフォルダに入っている場合)

ヘッダーファイル
先ほどと同様に適当なphpファイルに

<?php phpinfo(); ?>

と書いてアクセスすると以下のような欄があります。「include_path」で検索をかけてその項目を見ます。

導入

こちらからjpgraphをダウンロードして、ファイル一式を先ほどのinclude_pathで示されたディレクトリに移動します。

それから下記のようにjpgraphのあるフォルダからjpgraph.phpまでのファイルパスを書いてrequireします。(include_pathまでのパスは不要です)
私がダウンロードした時はちょうど下記の通りでした。

date_default_timezone_set('Asia/Tokyo');//追加
require_once("jpgraph/src/jpgraph.php");
require_once("jpgraph/src/[その他グラフ描画に必要なファイル名]");
//以下略

これ以外にrequireするファイルや具体的なソースコードの記述に関してはグラフの種類によって異なりますので参考サイトを参照して下さい。

CakePHPでフォームから画像をアップロード出来ないときのチェックポイント

フォームを作る時に単純なミスではまってしまったのでメモ。

以下の様な症状でフォームから画像がアップロード出来ない時に有効かも

ビューで
Form->file(‘file_name’); ?>と出力してフォームを設置して画像をアップロードした時、

コントローラーに渡された変数で
・$this->data[‘モデル名’][‘file_name’][‘tmp_name’]に一時ファイルのアドレスと関係ない1文字の文字列が格納されてる
・$this->data[‘モデル名’][‘file_name’]に配列でなく文字列が格納されている。

対処法
ビューのフォームタグを作る関数
$this->Form->create(‘モデル名’) を、

$this->Form->create(‘モデル名’,array(‘enctype’ => ‘multipart/form-data’));に改める

iOSで背景画像が縮小表示されてしまう時の対処法

スマートフォンやタブレットは、Webサイトを閲覧するにあたってとても便利で普及が進んでますね。
実際自分もiPadでWebサイトの閲覧をよくしてますが、PCとほぼ遜色がなく、しかも手軽に使えるのでますます多くの人に使われそうですね。
ともなればWeb制作者視点から見ればそういう人達への対応が必要なわけで…w
もう時代遅れでオワコンのIE6対策よりはこっちの対策を考えたほうがいい気がしますw
専用デザインでなくても、せめて見苦しくはならないようデザインを考えていきたいところですが…
ただ自分の私物ではiOS端末しかなく、Android端末で動作確認ができないので、Androidでどう見えてるかは割りと心配です(汗

ところで、iOSは結構Web標準に準拠していて、HTMLやCSSはもちろん、javascriptもPC版のSafariに遜色無くちゃんと動いてくれて嬉しいことが多いのですが、ときどきなんでこうなったんだ?って思いたくなるような仕様にぶち当たることもあります…
今回もそれにぶち当たってしまいましたorz

サイトの背景描きあがった!と思ってiPadでどう見えるかなと気分揚々で見てみたところ、

こんな感じに、背景画像だけが全体表示されてしまいました…見苦しい…
なんとかして他のコンテンツと同じ倍率で表示させて欲しい、と調べたところ、こんな記事がありました。

iPhoneのSafariブラウザにおける、色んな制限

ここには
「GIF、PNG、TIFF画像のデコードサイズ制限は2メガピクセル。つまり、width × height ≤ 2 × 1024 × 1024 でなければいけません。」と書いてありました。
画像の大きさを確認すると、1800×1200で確かにオーバーしてしまいましたorz
自分の場合はJPEGだけど、同じ理由なのかもしれないと試してみます。
でも僅かなオーバーだから少し削るだけで良かったとひと安心w

えーっと、横を削らなかったら縦は何pxにすればいいんだろう…と、幸いにも下の方に削っても差し支えのない黒の余白があったので、そこを削って1138pxにしました(きわどい

2 × 1024 × 1024 > 1138 × 1800 ということでOKになるかなと緊張の面持ちで確認してみると…

無事ちゃんと表示されました!
これでめでたしめでたし..