PHP 批量移动文件改名

public function changeCoverName(){
//$type = '考研';
//$coverPath = './Public/course_cover/kaoyan/';
$type = '四六级';
$coverPath = './Public/course_cover/four-six/';//源目录


$targetPath = './Upload/img/course_img/cover/'.md5($type).'/';//目标目录

//移动文件
$this->recurseCopy($coverPath,$targetPath);

//移动后改名文件
$this->changeName($targetPath);

}

移动文件函数
//目录文件移动,简洁 高效
public function recurseCopy($src,$dst) { // 原目录,复制到的目录
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
$this->recurseCopy($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}

//改名函数
public function changeName($targetPath){
$d = dir($targetPath);
while (false !== ($entry = $d->read())) {
$newStr = explode('.',$entry);
$newStr[0] = iconv('gbk','utf-8',$newStr[0]);
$newName = md5($newStr[0]);
// echo $newStr[0].'---'.$newName.'<br/>';
rename($targetPath.$entry, $targetPath.$newName.".".$newStr[1]);
}
$d->close();
}

你可能感兴趣的:(PHP 批量移动文件改名)