//by qidizi 实现 按id分目录,如当前id数为1000,目录为2级,最多一个目录可以放文件/目录1000,就是0/1
//2级,1000个,id=1000*1000 才1/0,就是说1目录下有1000个目录,而下面目录每个放1000个文件
//echo '<br />'. _qidiziIDUrl ('{$id, 2, 1000}/k',1000000); ==== 1/0/k
private function _qidiziIDUrl ($url,$id) {
$id = (int)$id;
if (!preg_match_all("/\{\\\$id\s*,\s*(\d+)\s*,\s*(\d+)\}/",$url,$a,PREG_SET_ORDER) )
return $url;
$ma = $a[0][0];
$part = (int)$a[0][1];
$max = (int)$a[0][2];
if (!$part || !$max)
return $url;
$idPart = array();
$last = $id;
while ($part > 0) {
$pow = pow($max,$part);
$idPart[] = floor($last/$pow);
$last = $last%$pow;
$part--;
}
$idPart = implode('/',$idPart);
return str_replace($ma,$idPart,$url);
}