get_existpages
Tag: PukiWiki Hack
get_existpages を3行で軽くする
lib/file.php#get_existpages
// Get a page list of this wiki
function get_existpages($dir = DATA_DIR, $ext = '.txt')
{
+ static $pages = array();
+ if (isset($pages[$dir][$ext])) return $pages[$dir][$ext];
$aryret = array();
$pattern = '((?:[0-9A-F]{2})+)';
if ($ext != '') $ext = preg_quote($ext, '/');
$pattern = '/^' . $pattern . $ext . '$/';
$dp = @opendir($dir) or
die_message($dir . ' is not found or not readable.');
$matches = array();
while ($file = readdir($dp))
if (preg_match($pattern, $file, $matches))
$aryret[$file] = decode($matches[1]);
closedir($dp);
+ $pages[$dir][$ext] = $aryret;
return $aryret;
}
一ページで、get_existpages を使用しているようなプラグインを何度も使用する場合に格段に早くなる。
#popular(total) #popular(today) #popular(yesterday) #popular(recent)
とか
ファイルに書き出し高速化する方法はこちら http://www.revulo.com/PukiWiki/Cache/PagenameCache.html


