Home > PHP
PHP Archive
家計簿作ってみた
- 2010-06-13 (日)
- PHP
|
ここのところ pChart を試していた理由でもあるのですが、家計簿(みたいなもの)を作ってみました。
以前も家計簿を自作していましたけど、データを CSV から SQLite にして管理の容易さはそのままに扱いやすさが増しました。
SQLite すごい。
■ 入力画面
月額と日額で金額を入力するだけー。
■ 統計画面
グラフにするだけー。
■ 技術トピック
・ Apache 2.2
・ PHP 5.3
・ SQLite 3
・ Smarty 3
・ pChart 1.27d
on Windows7 64bit
まあ、あんまり厳密なものではなくて、ざっくり把握するには十分かな。
今月は食費が多かったなー、とか。
- Comments: 0
- Trackbacks: 0
帰ってきたPHPメモ
- 2010-06-04 (金)
- PHP
|
久しぶりに PHP を触ったのでどうでもいいメモ。
■ 切り上げ
- $value = 56789;
- $value = ceil($value / 10000) * 10000;
- var_dump($value); // float(60000)
■ array_shiftの挙動
- $values = array(
- '00' => 'a',
- '10' => 'b',
- '20' => 'c',
- '30' => 'd',
- '40' => 'e',
- );
- // キーが数値っぽかったら振り直される
- array_shift($values);
- var_dump($values);
[0]=>
string(1) “b”
[1]=>
string(1) “c”
[2]=>
string(1) “d”
[3]=>
string(1) “e”
}
- Comments: 0
- Trackbacks: 0
pChart使ってみた
- 2010-06-01 (火)
- PHP
|
簡単に見栄えの良いグラフをかけると評判の PHP のグラフライブラリ pChart を試してみました。
pChart | a PHP Charting library
サンプルを見ても結構大変だったので、サンプルを元にコメントを付けたのが以下になります。
■ 確認環境
・ Windows7 64bit
・ PHP5.3.2
■ コード
- // ライブラリの読み込み
- require("pChart/pData.class");
- require("pChart/pChart.class");
- // --------------------------------------
- // データの準備
- // --------------------------------------
- $data = new pData;
- $data->AddPoint(array(1,4,3,2,3,3,2,1,0,7,4,3,2,3,3,5,1,0,7),"Serie1");
- $data->AddSerie("Serie1");
- $data->SetSerieName("データその1","Serie1");
- $data->AddPoint(array(4,5,6,3,1,4,7,3,1,2,1,4,5,1,2,4,7,1,6),"Serie2");
- $data->AddSerie("Serie2");
- $data->SetSerieName("データその2","Serie2");
- // --------------------------------------
- // グラフの初期化
- // --------------------------------------
- $chart = new pChart(700,230); // グラフの画像サイズ:横,縦
- $chart->setFontProperties("../fonts/meiryo.ttc",10); // フォント,サイズ
- $chart->setGraphArea(40,30,680,200); // グラフのキャンバス (x1,y1),(x2,y2)
- $chart->drawGraphArea(252,252,252); // RGB
- $chart->drawScale($data->GetData(),$data->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); // スケール
- $chart->drawGrid(4,TRUE,230,230,230,255); //グラフ背景のグリッド
- // --------------------------------------
- // グラフの描画
- // --------------------------------------
- // 折れ線グラフ
- $chart->drawLineGraph($data->GetData(),$data->GetDataDescription());
- // データのプロット(折れ線グラフの各点)
- $chart->drawPlotGraph($data->GetData(),$data->GetDataDescription(),3,2,255,255,255); // 外側半径,内側半径,R,G,B
- // legendは「凡例」
- $chart->setFontProperties("../fonts/meiryo.ttc",8);
- $chart->drawLegend(45,35,$data->GetDataDescription(),255,255,255); // 場所, RGB
- // タイトル
- $chart->setFontProperties("../fonts/meiryo.ttc",10);
- $chart->drawTitle(60,22," グラフを書いてみたよ",50,50,50,585); // 場所, RGB
- $chart->Render("test.png"); // ファイルに書き出す
※クリックで最大化します。
■ その他
・ UTF-8じゃないとグラフの日本語が文字化けしてしまいました。
・ php.iniのGDを有効にしておく必要があります。
・ バグレポートにあるとおり、そのままだと notice が出てしまいます。
SourceForge.net: pChart: Topic: Bug with pData.class.php
気になる方は notice を無視するか、pData.class:55 あたりに以下の修正を入れると OK です。
- // -----------------------------------
- // notice対応
- $this->Data = array();
- //$this->Data = "";
- // -----------------------------------
pChartは素晴らしいグラフライブラリなのですが、更新が途絶えて久しいのが気になりますね。
Forumを有効に利用すると良いかもです。
- Comments: 0
- Trackbacks: 0
Smarty3 RCを使ってみた
- 2010-05-30 (日)
- PHP
|
久しぶりに PHP でコードを書こうと思ったら、Smarty3 が RC になってた。
2.xと同じような感覚で使ってみたら、deprecated と言われたのでメモ。
まだマニュアルないのかなー。
- $view = new Smarty();
- // 2.xでの書き方
- //$view->register_modifier("number_format","number_format");
- // 3での書き方
- $view->registered_plugins['number_format'];
※ 追記:上のコードはうそうそです。なんかもうダメダメだな・・。
ついでにコードをブログ用に整形するツールを PHP5.3 にそのまま持ってきたら deprecated 言われてる。。
はわわー。
- Comments: 0
- Trackbacks: 0
titleにsetできない件@CakePHP
- 2009-08-08 (土)
- PHP
|
実際に CakePHP を使ってみたので、つまづいたところを中心にメモ。
■ title に set できない
Bake した後、適当に見出しを変更しようと思って index.ctp の h2 タグを修正してみました。
- <h2> echo $title </h2>
Controller で set しておきます。
- <?php
- $this->set(‘title‘, ‘CakePHP を使ってみたよ!’);
- ?>
これが表示できない。そんな変数しらないよ。って怒られる。
理由は Controller#set にありました。
- if ($name === ‘title‘) {
- $this->pageTitle = $value;
- } else {
- if ($two === null && is_array($one)) {
- $this->viewVars[Inflector::variable($name)] = $value;
- } else {
- $this->viewVars[$name] = $value;
- }
- }
‘title’だけ特別扱いしてる。
‘title’に set すると pageTitle に値を入れてくれるんだねー、って誰が言った?
少なくともマニュアルの「4.5.4 コントローラのメソッド」の set の項には書いていないし、API にも書かれていない。
pageTitle への値の設定はマニュアルにも
$this->pageTitle = “hogehoge”;
となっているし、個人的にもこの set の挙動は不可解。
- Comments: 0
- Trackbacks: 0
ホーム > PHP






