pearのDBとMDB2の違い

2006/10/13 | その他PEAR全般

PEARのDBがメンテナンスモードになったことにより、データベースを扱う次のデフォルトがMDB2になった。しかし使い方が若干違うので、主要な部分だけとりあえずメモ。1行目がDBで2行目がMDB2。

○読み込み
require(‘DB.php’);
require(‘MDB2.php’);

○接続(これはconnectでも動いているっぽい)
$db=& DB::connect($dsn);
$mdb2=& MDB2::factory($dns);

○データをフェッチするモードの設定
$db->setFetchMode(DB_FETCHMODE_ASSOC);
$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);

○全行取得
$all = $db->getAll($sql);
$all = $mdb2->queryAll($sql);

○1つだけ取得
$one = $db->getOne($sql);
$one = $mdb2->queryOne($sql);

○1行取得
$row = $db->getRow($sql);
$row = $mdb2->queryRow($sql);

○連番取得(DBではカラムid、MDB2ではカラムsequenceを使う)
$db->nextId($table);
$mdb2->nextId($table);

○文字列のクオート
‘SELECT name FROM people WHERE id = ‘.$db->quoteSmart(1)
‘SELECT name FROM people WHERE id = ‘.$db->quote(1, ‘integer’)

参考:DB-2-MDB2

textpatternのバグ(不具合)?

2006/10/09 | SNS/CMS/ブログ

最近気に入って使っているブログツールtextpatternだが、いくつか不具合がある。

○その1 日本語でカテゴリが追加できない
理由は調べていないからわからないけれど、日本語でカテゴリ追加ができない。でも一旦英数字でカテゴリを追加して、追加したカテゴリを修正する際に日本語で入力すれば、こちらは上手くいく。理由はどうあれ、とりあえずそれで困らないので、パッチの作成はやんない。

○その2 カテゴリリストを表示させると、URLがマルチバイト文字になる
textpatternでテンプレートを編集するには、独自に用意されたタグを使用する。ここでカテゴリのリストを表示させると、どうやっても当該カテゴリへのリンクURLが「マルチバイト文字をエンコードしたもの」になってしまう。よくよく調べたら、おそらくこれはtextpatternのバグといっていいだろう。textpatternはいろいろな言語に対応していて、各用語はデータベースに登録されている。テーブル「txp_lang」に保存されているのだが、その中でフィールド名「name」の値が「category」、「data」の値が「カテゴリ」となっている値があるはずだ。ここで「data」の値を「category」とすればURL表記も「category」になった。・・・これはやっぱりバグだよね。

うん。でもやっぱりいいツールだ。すっかり気に入って使っている。いいCMSになるよう仕上げていきたいものだ。

RSS取得にSimplePie

2006/10/08 | XML

PearのXML_RSSでRSSを簡単に操作できることは前にも書いたけど、Pear版はatomには対応していない。atomは簡単にいうともともとのRSSに独自拡張を加えたような形式。フォーマットは少し複雑になるけれど、含まれる情報量が豊富なので便利な面も多々ある。
で、これを扱うためのライブラリでSimplePieというのを見つけた(ウェブはこちら)。使ってみたら超簡単。サンプルプログラムをみながら作ったけど、プログラムの記述を理解しなくてもサンプルを書き換えるだけで簡単に動作させることができた。以下が記述例だ。

<?php
 require_once(‘simplepie.inc’);
 $feed = new SimplePie($rss,$cacheDir);
 $feed->bypass_image_hotlink();
 $feed->strip_ads(true);
 $feed->init();
 $feed->handle_content_type();
 $topicArray=array();
 if($feed->data){
  while($feed->get_items() as $item){
   //
  }
 }
?>

関数名を見れば、いくつか省略できる行がありそうだ(面倒だからそんなことお構いなしで使用)。
便利、便利。

お気に入りブログツールtextpattern

2006/10/07 | SNS/CMS/ブログ

ブログツールはいろいろさわってみたけれど、最近はtextpatternに落ち着いている。まだまだ使いこなしていないけれど、既にこの仕組みを使って一つサイトを構築した。作ったのはこちら。

mooo開発者情報

このアプリ「textpattern」自体は日本ではまだまだ知られていない。使ってみて思ったのは「まだ日本語化が完全でない」ということ。カテゴリの追加で日本語カテゴリが上手く追加できない(記事の投稿は問題なくできる)。
あとはping送信機能が貧弱だし、トラックバック機能がない。ping送信は組み込み済みの1箇所にのみ送信するだけなので(海外のpingサーバ)、ここは追加開発してやらないといけないと思う。更新pingは、スパムの温床ということで組み込まれていないそうだ(ごもっとも)。コメントは受け取ることができるので、ping送信が必要なければ結構いいツールだと思う。

でも一番気に入ったのはスタイルシート修正機能。多分何かのライブラリを組み込んだのはないか、と思うのだけれどこれがよくできている。スタイルシートもそうだけど、デザインの修正が簡単なように思う。これから「textpattern」を使っていくつかサイトを構築する予定。モジュール開発とかしたらここで公開します。

ブログツール「textpattern」

Googleのページランクを取得する

2006/10/06 | PHPライブラリ

SEOでおなじみのGoogleページランク。普通は「Googleツールバーをインストールして、ページランクを知りたいURLにアクセスし、表示された値を見る」という作業が必要だ。でもこれでは、わざわざそのページにアクセスしてみないといけないので、結構面倒だ。
仕事仲間に教えてもらったんだが、ページランクをプログラムで取得できるらしいことを知った。「これはやってみるっきゃないでしょう」ということでいろいろ調べて(もちろんgoogleで)、3時間かかってプログラムができた。いちおうクラス化したので転用可能だ。
以下のページに公開してみたのでお試しあれ。

Googleのページランクを調べる

ソースコードの公開は・・・結構な希望数があれば考えます。
希望者の方は・・・コメントしておいていただければ・・・(あと「PHPのテクメモ」にリンクはってくれれば・・・)。


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