1. 程式人生 > >php 複製檔案並重命名

php 複製檔案並重命名

最近公司年會要多一個抽獎頁,發了每個人的頭像,圖片命名為工號+個人名字.jpg(1035 名字.jpg),批量重新命名並獲取每個人的名字上程式碼

<?php 
header("Content-type: text/html; charset=utf-8"); 
// 將原檔案複製
 function recurse_copy($src,$des){
 	$dir = opendir($src);
 	mkdir($des);
 	while(($file=readdir($dir)) !== false){
 		if ($file != '.' && $file != '..') {
 			if (is_dir($src.'/'.$file)) {
 				recurse_copy($src.'/'.$file,$des.'/'.$file);
 			}else{
 				copy($src.'/'.$file,$des.'/'.$file);
 			}

 		}
 	}
 	closedir($dir);
 }
 recurse_copy('./img','./header');
 // 將複製後的檔案重新命名並輸出
$dir = './header';
$filename = scandir($dir);
$match = null;

foreach($filename as $k=>$v){
	if ($v!='.' && $v!='..') {
		$v = @iconv('GB2312','UTF-8',$v); 
		preg_match('/\d+\s*(.*).jpg/',$v,$match);
		// preg_match('/(.*).jpg/',$v,$match);
		// var_dump($v);
		if($v != false){
			$name = $match[1];
			// echo $dir.'/'.$v.'<br>';
			// echo ($k-1).'--'.$name.'<br>';
			$oldname = $dir.'/'.$v;
			$newname = $dir.'/'.($k-1).'.jpg';
			// echo $newname.'---'.$oldname.'<br>';
			if (file_exists($newname)) {
				echo "目標檔案已存";
				// return false;
			}else{
				// WINDOW系統中中文預設編碼是GBK好心塞,中文檔案修改一直報錯
				// rename($oldname,$newname);
				 rename(iconv('UTF-8','GBK',$oldname), iconv('UTF-8','GBK',$newname));
			}
				
		}

		echo '<img src="'.$newname.'"" alt="'.$name.'">';
	}
}

 ?>