0
点赞
收藏
分享

微信扫一扫

最多n级,每级最多x个文件/目录,id是y,路径是什么实现方法---初步校验是正确的?!

//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);

}

举报

相关推荐

0 条评论