<?php /** * opendir() 函数打开一个目录句柄 * readdir() 函数返回由 opendir() 打开的目录句柄中的条目。 * is_dir() 函数检查指定的文件是否是目录。 * @param string $file 返回的文件条目 * @param string $format 需要提取的文件格式 * @param string $dir 文件的路径 * @param resource $handle 打开的文件目录句柄 */ function my_scandir($dir,$format) { $format_arr = explode(',',$format); //提取文件放到的目标路径(根目录下的文件格式前三个字符命名的文件夹) $new_dir = iconv("UTF-8", "GBK", $_SERVER['DOCUMENT_ROOT'].'/'.substr($format,0,3)); if (!file_exists($new_dir)){ mkdir ($new_dir,0777,true); } //检测是否存在文件 if (is_dir($dir)) { //打开目录 if ($handle = opendir($dir)) { //返回当前文件的条目 while (($file = readdir($handle)) !== false) { //去除特殊目录 if ($file != "." && $file != "..") { //判断子目录是否还存在子目录 if (is_dir($dir . "/" . $file)) { //递归调用本函数,再次获取目录 my_scandir($dir . "/" . $file,$format); } else { //判断文件格式 if(in_array(strtolower(pathinfo($file,PATHINFO_EXTENSION)),$format_arr)){ // if ($format == pathinfo($file,PATHINFO_EXTENSION)) { $i = ''; //判断新文件夹中是否已存在同名文件 do { $newFile=$new_dir.'/'.$i.$file; $i++; } while (file_exists($newFile)); echo $newFile.'<br>'; copy($dir."/".$file,$newFile); unlink($dir."/".$file); } } } } closedir($handle); } } } my_scandir("D:\zhifubao111",'avi,mov,rmvb,rm,flv,mp4,3gp'); //需要执行操作的路径,需要提取的文件格式(英文逗号隔开)