php 複製檔案並重命名
阿新 • • 發佈:2019-02-06
最近公司年會要多一個抽獎頁,發了每個人的頭像,圖片命名為工號+個人名字.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.'">'; } } ?>