Home >Backend Development >PHP Tutorial >PHP simple traversal rename
<?php $path = './fzlhead/'; function get_filetree_scandir($path){ $result = array(); $temp = array(); if (!is_dir($path)||!is_readable($path)) return null; //检测目录有效性 $allfiles = scandir($path); //获取目录下所有文件与文件夹 foreach ($allfiles as $filename) { //遍历一遍目录下的文件与文件夹 if (in_array($filename,array('.','..'))) continue; //无视 . 与 .. $fullname = $path.'/'.$filename; //得到完整文件路径 if (is_dir($fullname)) { //是目录的话继续递归 $result[$filename] = get_filetree_scandir($fullname); //递归开始 } else { $temp[] = $filename; //如果是文件,就存入数组 $uniqid = uniqid('apoo_'); $ext = pathinfo($filename, PATHINFO_EXTENSION); rename($fullname,$path.'/'.$uniqid.'.'.$ext); } } foreach ($temp as $tmp) { //把临时数组的内容存入保存结果的数组 $result[] = $tmp; //这样可以让文件夹排前面,文件在后面 } return $result; } print_r(get_filetree_scandir($path)); ?>
1) How to count how many files there are in this directory
2) How to count how many php files there are in this directory
3) How to count how many non-txt files there are in this directory
$arr = scandir($ dir);
$all = count($arr)-2;//The total number of all files except ./ and ../
$php = count(preg_grep("/.php$/", $arr));
$ txt0 = $all - count(preg_grep("/.txt$/", $arr));
echo 'There are '.$all.' files, php files '.$php.', non-txt files'. $txt0.'piece';