カテゴリ | |
---|---|
サマリ | get_existpagesについて |
バージョン | 1.4.2 |
投稿者 | kent |
状態 | 完了 |
投稿日 | 2004-03-08 (MON) 19:29:24 |
refererプラグインは、ページ名がない場合あるいはページ名が不正な場合
$pages = get_existpages(TRACKBACK_DIR,'.ref'); if (count($pages) == 0) { return array('msg'=>'','body'=>''); } return array( 'msg' => 'referer list', 'body' => page_list($pages,'referer',FALSE) );というルーチンに入りますが、get_existpagesが必ず0を返します。 pukiwiki/trackback/に保存されている.refファイルの名前はtrackback.phpで次のようにmd5を利用して生成されています。
function tb_get_id($page) { return md5($page); }
md5が生成する文字列はRH9+apache1.3.29+PHP4.3.4では全て小文字です。 しかし、file.phpのget_existpagesで使われているパターンは
$pattern = '^((?:[0-9A-F]{2})+)';ですので、
preg_match("/$pattern/",$file,$matches))にはマッチしません。
とりあえず、大文字小文字をマッチさせないことにしてとおすと、一覧が表示されますが文字化けしていました。 get_existpagesでは
$aryret[$file] = decode($matches[1]);となっていますが、encodeされたものではないのでdecodeで名前に戻すことは出来ないのではないでしょうか。
よく分からないので教えてください。
バージョンの項が1.4.2ですが、1.4.3でrefファイルの名前がmd5値ではなくencodeの値に変更されていますよね?( dev:開発日記/2004-03-18参照)ということでdecodeで名前を元に戻せるので問題なしと思いますが