func.phpの
// Create list of pages function page_list($pages, $cmd = 'read', $withfilename = FALSE) {
で始まる部分のなかに
// WARNING: Japanese code hard-wired if($pagereading_enable) { if(mb_ereg('^([A-Za-z])', mb_convert_kana($page, 'a'), $matches)) { $head = $matches[1]; } elseif (isset($readings[$page]) && mb_ereg('^([ァ-ヶ])', $readings[$page], $matches)) { // here $head = $matches[1]; } elseif (mb_ereg('^[ -~]|[^ぁ-ん亜-熙]', $page)) { // and here $head = $symbol; } else { $head = $other; } } else { $head = (preg_match('/^([A-Za-z])/', $page, $matches)) ? $matches[1] : (preg_match('/^([ -~])/', $page, $matches) ? $symbol : $other); }
という内容がありますよね。
で、後半部分にある
$head = (preg_match('/^([A-Za-z])/', $page, $matches)) ? $matches[1] : (preg_match('/^([ -~])/', $page, $matches) ? $symbol : $other);
の2回目の分岐条件が、
(preg_match('/^([ -~])/', $page, $matches) ?
となっているのはなぜなのでしょうか?
この部分以降 $matches を使っていないので、
(preg_match('/^([ -~])/', $page) ?
でもいいような気がするのですが?
それともうひとつ。
繰り返し処理の中にあるので、
preg_match('/^([A-Za-z])/S', $page, $matches)
として高速化を図ることはできないのでしょうか?
この部分だけでは、処理速度の改善にはつながらないかもですし、ページ(の検索結果)を一覧する数しだいでは逆効果になるかもしれないですが。
素人目線な気がしますが、提示しておきます。