**[[続・質問箱/70]] [#v065dd57] #author("2018-03-11T12:26:34+09:00;2004-10-04T02:27:21+09:00","","") **[[質問箱/2070]] [#v065dd57] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|get_existpagesについて| |~バージョン|1.4.2| |~投稿者|[[kent]]| |~状態|完了| |~投稿日|&new{2004-03-08 (MON) 19:29:24};| ***質問 [#j63c5a2f] :| ~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で名前に戻すことは出来ないのではないでしょうか。 ~よく分からないので教えてください。 ***回答 [#ie0ac578] -[[にぶんのに]] &new{2004-05-10 (MON) 02:16:33}; ~バージョンの項が1.4.2ですが、1.4.3でrefファイルの名前がmd5値ではなくencodeの値に変更されていますよね?( [[dev:開発日記/2004-03-18]]参照)ということでdecodeで名前を元に戻せるので問題なしと思いますが #comment