func.phpのfunction page_listについて

メッセージ

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)

として高速化を図ることはできないのでしょうか?

この部分だけでは、処理速度の改善にはつながらないかもですし、ページ(の検索結果)を一覧する数しだいでは逆効果になるかもしれないですが。
素人目線な気がしますが、提示しておきます。



*1 = 正規表現が複雑である部分では、効果があるだろうと思います

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-12-28 (日) 14:43:08
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.197 sec.

OSDN