Archive for the ‘php’ category

Chain of Responsibility

3月 4th, 2010

ZendFramewrokで普通に使われているクラスのチェイン。
アレ覚えたい。

デザインパターンでChain of Responsibilityと言うらしい。
» Read more: Chain of Responsibility

画像ファイルが壊れていないかチェック

3月 5th, 2008

サムネイル画像作成などでファイルサイズが大きいものは失敗するときがある。
そんなときリソース化にしてみると画像が壊れていないか確認できる。

$img_contents = file_get_contents('path');    //サムネイル

//リソース化できないのは取得失敗
if (!@imageCreateFromString($img_contents)){
  throw new exception("ファイルサイズが大きすぎるようです。");
}

PEAR::DBからPEAR::MDB2へ

9月 27th, 2007

データーベースのコネクト処理に欠かさず利用しているPEAR::DBだが、最新PEARパッケージ群から消えていたり公式からもPEAR::MDB2の移行を進めてるらしい。

利用方法はほぼ同じということで特に抵抗無く移行できると思うので今後はPEAR::MDB2を使っていくか。。
ZendFremeworkを使った開発にはZend_Dbを使っていく予定だが、今まで普通に使っていたパッケージも変えると思うと気が重い。。

< ?php
// まずプログラムの最初に、$mdb2 という名前の
// MDB2 オブジェクトを作成します
require_once 'MDB2.php';
 
$mdb2 =& MDB2::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}
 
// クエリを実行します
$res =& $mdb2->query('SELECT * FROM clients');
 
// 結果がエラーでないかどうかを常にチェックします
if (PEAR::isError($res)) {
    die($res->getMessage());
}
?>

PEAR::Services_Livedoor

9月 4th, 2007

p4lifeさんのPEAR::Services_Livedoor(非公式)パッケージを使ってWeather Hacks – livedoor 天気情報 をphpで取得するメモ

PHP で Livedoor のお天気Webサービスを使う
output5.jpg

とても便利だがPearを複数使うので設置するだけなのに手間取りました^^;

実際の使い心地はAPI側が少し時間かかるので、サイト表示時間がそのぶん重くなった。
なのでページを表示してからajaxでお天気予報ブロックを表示させるようにした。

ImageCopyResampledとImageCopyResized

9月 3rd, 2007

php GDライブラリ

ImageCopyResampled — 再サンプリングを行いイメージの一部をコピー、伸縮する
ImageCopyResized — 画像の一部をコピーしサイズを変更する

似てるけど結果にかなり差があり。
色化けした場合はこれを疑おう。

image関数

8月 30th, 2007

画質を落とさない出力
header(“Content-type: image/jpeg”);
ImageJPEG($im,”,100);

100をつけるとおk
つーかデフォルトを100にしてよ・・・。

Pear DB

8月 30th, 2007

忘れやすいのでメモ

$db->autoCommit();  //トランザクション開始
$db->rollback();  //ロールバック
$db->commit();  //コミット
$db->disconnect();  //閉じる

ファイルの先頭8バイトだけで画像のフォーマットを調べる方法

8月 29th, 2007

ファイルの先頭8バイトだけで画像のフォーマットを調べる方法

http://labs.gmo.jp/blog/ku/2007/05/8.html

こりゃー便利だ。
つーかなんでGDはサポートしてないんだろう??
リソースから取得できてもよさそうなもんなのに。。