gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

PHP批量文件重命名腳本(支持正則)

本篇文章給大家帶來了關于PHP的相關知識,其中主要跟大家介紹怎么用PHP實現批量文件重命名腳本,感興趣的朋友下面一起來看一下吧,希望對大家有幫助。

PHP批量文件重命名腳本(支持正則)

PHP批量文件重命名腳本(支持正則)

如題。

【免責聲明】請了解怎么使用和正則的情況下謹慎使用,由此造成的任何后果均與本程序及其作者無關~

【使用說明】

格式: rename from to path from 是從什么文件名 to 是重命名什么文件名 path 是哪個文件夾(path 可省略,默認為當前文件夾)

【比如】

rename “(d+)(.*).jpg” “{1}.jpg” {1} 代表正則的第一個捕獲組,{2},{3} 以此類推

rename “(d+).jpg” “{i}.jpg” {i} 代表從 1 開始每個文件增加 1,{i10} 代表從 10 開始每個文件加 1,{i10+2} 代表從 10 開始加 2,{i10-2} 代表從 10 開始減 2

【另外】

–rsort 代表文件名按倒序處理,默認為正序 –debug 代表調試,可以打印出哪個文件將會重命名為什么名稱的列表 –help 是顯示幫助文檔

【其他】

默認重命名后的文件在 path 目錄下的 renamed 目錄里,不會重命名原文件,請確認無誤后仔細拷貝(如需重命名在源文件上,請加 –force 參數,該參數請謹慎使用,當出現錯誤時,文件會被覆蓋掉且無法恢復,因此非經過嚴格測試,確保安全情況下不建議使用)

【代碼如下】

#!/usr/bin/php <?php //【免責聲明】請了解怎么使用和正則的情況下謹慎使用,由此造成的任何后果均與本程序及其作者無關 //PHP批量文件重命名腳本(支持正則) // 格式: rename from to path from是從什么文件名 to是重命名什么文件名 path是哪個文件夾(path可省略,默認為當前文件夾) // 比如: rename "(d+)(.*).jpg" "{1}.jpg" {1}代表正則的第一個捕獲組,{2},{3}以此類推 //       rename "(d+).jpg" "{i}.jpg" {i}代表從1開始每個文件增加1,{i10}代表從10開始每個文件加1,{i10+2}代表從10開始加2,{i10-2}代表從10開始減2 // 另外: --rsort代表文件名按倒序處理,默認為正序 --debug代表調試,可以打印出哪個文件將會重命名為什么名稱的列表 --help是顯示幫助文檔 // 默認重命名后的文件在path目錄下的renamed目錄里,不會重命名原文件,請確認無誤后再拷貝(如需重命名在源文件上,請加--force參數,該參數請謹慎使用,當出現錯誤時,文件會被覆蓋掉且無法恢復,因此非經過嚴格測試,確保安全情況下不建議使用) if(in_array('--help', $argv)) {     //顯示help菜單     help();     exit(); } //開啟調試模式 $debug = 0; if(in_array('--debug', $argv)) {     unset($argv[array_search("--debug",$argv,true)]);     $debug = 1; } //開啟覆蓋式重命名,默認是拷貝式重命名 $forceCover = 0; if(in_array('--force', $argv)) {     unset($argv[array_search("--force",$argv,true)]);     $forceCover = 1;     //讓用戶確認是否使用--force參數,防止誤操作     fwrite(STDOUT,'您正在使用--force參數,該參數可能導致文件被覆蓋且無法恢復,您確認使用嗎?yes使用,no不使用:');     $confirm = strtolower(trim(fgets(STDIN)));     if($confirm != 'yes' && $confirm != 'y') {         //不使用         $forceCover = 0;     } } //--rsort把文件按自然排序倒序,默認是按自然排序正序 $sortType = 'sort'; if(in_array('--rsort', $argv)) {     unset($argv[array_search("--rsort",$argv,true)]);     $sortType = 'rsort'; } //獲取命令行參數,建議加“”防止字符被shell解析 $argv = array_values($argv); $from = $argv[1]??''; if($from == "*" || $from == "*.*"){     $from = ".*"; } $to = $argv[2]??''; //path默認為當前目錄 $path = $argv[3]??''; $path = $path ? rtrim($path, '/') . '/' : ''; if(!$from||!$to){     //參數錯誤報錯并顯示幫助     echo "[error] from and to is required.n";     help();     exit(); } //遍歷所有文件并按自然排序 $files = glob("{$path}*"); if($sortType == 'rsort') {     rsort($files, SORT_NATURAL); } else {     sort($files, SORT_NATURAL); } //匹配$to中{i10+1}字符串 preg_match("#{(?<i>[iI])(?<init>(d+){0,1})(?<op>[+-]{0,1})(?<step>(d+){0,1})}#", $to, $toMatches); //設置初始值 $init = !empty($toMatches['init']) ? intval($toMatches['init']) : 1; $count = $init ?: 1; //遍歷所有文件名進行替換處理 foreach ($files as $filename) {     $tofilename = $to;     //替換$to中{i10+1}字符串     if(!empty($toMatches)) {         $tofilename = str_replace($toMatches[0], $count, $tofilename);     }     //替換每個文件名的捕獲組(即$from正則中的捕獲組)     preg_match("#{$from}#i", $filename, $fromMatches);     if(!empty($fromMatches)) {         foreach($fromMatches as $key => $val) {             //跳過第一個,第一個不是捕獲組             if($key > 0) {                 $tofilename = str_replace("{{$key}}", $val, $tofilename);             }         }     }     // 根據$to中{i10+1}字符串判斷操作方向     if(!empty($toMatches)) {         $step = !empty($toMatches['step']) ? intval($toMatches['step']) : 1;         $op = !empty($toMatches['op']) ? trim($toMatches['op']) : "+";         if($op == "+"){             $count = $count + $step;         } else {             $count = $count - $step;         }     }     //調試時只顯示不實際寫入     if($debug) {         $tofilename = $path.$tofilename;         echo "$filename => $tofilenamen";         continue;     }     //寫入重名名后的文件     if($forceCover){         //覆蓋式重命名         rename($filename, $path.$tofilename);     } else {         //拷貝式重命名         if(!file_exists($path.'renamed/')){             mkdir($path.'renamed/',0777,true);         }         copy($filename, $path.'renamed/'.$tofilename);     } } function help() {     echo "幫助文檔:n";     echo "格式:rename from to path from是從什么文件名 to是重命名什么文件名 path是哪個文件夾(path可省略,默認為當前文件夾)n";     echo "列如:rename "(d+)(.*).jpg" "{1}.jpg" {1}代表正則的第一個捕獲組,{2},{3}以此類推n";     echo "列如:rename "(d+).jpg" "{i}.jpg" {i}代表從1開始每個文件增加1,{i10}代表從10開始每個文件加1,{i10+2}代表從10開始加2,{i10-2}代表從10開始減2n";     echo "另外: --rsort代表文件名按倒序處理,默認為正序 --debug代表調試,可以打印出哪個文件將會重命名為什么名稱的列表 --help是顯示幫助文檔n";     echo "默認重命名后的文件在path目錄下的renamed目錄里,不會重命名原文件,請確認無誤后再拷貝(如需重命名在源文件上,請加--force參數,該參數請謹慎使用,當出現錯誤時,文件會被覆蓋掉且無法恢復,因此非經過嚴格測試,確保安全情況下不建議使用)n"; }
登錄后復制

推薦學習:《PHP視頻教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
四虎影院一区二区| 天天干天天草天天| 欧美三级午夜理伦三级老人| 激情视频综合网| 北条麻妃在线一区| 1024av视频| 99久久激情视频| 欧美一级片免费播放| 成人小视频在线观看免费| 久久久久久久久久久久久久久国产| 日韩 欧美 高清| 国产一级特黄a大片免费| 国产av无码专区亚洲精品| 欧美色图色综合| 免费国产成人av| 成人免费在线观看视频网站| 一区二区成人网| 亚洲va在线va天堂va偷拍| www.久久久久久久久久久| 最新视频 - x88av| 人妻激情另类乱人伦人妻 | 国产综合中文字幕| 日本不卡在线观看视频| 亚洲色精品三区二区一区| 999在线观看| 超碰10000| 男女爽爽爽视频| 99久久99久久精品| 欧美视频第一区| 成人性生交免费看| 无码熟妇人妻av在线电影| 久久精品一区二| 男女啪啪免费观看| 欧美在线观看视频网站| 九九久久九九久久| 别急慢慢来1978如如2| 欧美aaa在线观看| 国产女女做受ⅹxx高潮| 999久久久精品视频| 久草资源站在线观看| 久国产精品视频| 精品www久久久久奶水| 99精品一区二区三区的区别| 免费男同深夜夜行网站| 超薄肉色丝袜足j调教99| 国产成人久久777777| 欧美日韩激情四射| 激情在线观看视频| 人人干人人视频| 成人午夜精品久久久久久久蜜臀| 三级黄色片免费观看| 国产av无码专区亚洲精品| 久久精品xxx| 久久av高潮av| 亚洲综合20p| 爱爱爱爱免费视频| 国产天堂在线播放| 国产午夜福利视频在线观看| 欧美日韩中文字幕在线播放| 三级性生活视频| 九九热99视频| 视频免费1区二区三区| 国产a级片免费观看| 久久久久人妻精品一区三寸| 波多野结衣乳巨码无在线| 69sex久久精品国产麻豆| 欧美a级黄色大片| 丰满人妻一区二区三区53号| 最近免费观看高清韩国日本大全| 国产xxxxhd| 天天成人综合网| 亚洲小视频在线播放| 老司机午夜免费福利视频| 日本黄xxxxxxxxx100| 亚洲精品国产suv一区88| 亚洲一区 在线播放| www.好吊操| 99爱视频在线| 亚洲精品怡红院| www.久久av.com| 喜爱夜蒲2在线| 天堂8在线天堂资源bt| 你懂的av在线| 日本老熟妇毛茸茸| 国产福利精品一区二区三区| 免费看污污视频| 国产91在线免费| 噼里啪啦国语在线观看免费版高清版| 亚洲综合色在线观看| 国产大尺度在线观看| 99热自拍偷拍| 亚洲视频第二页| 亚洲国产精品无码av| 亚洲老女人av| 丁香婷婷综合激情| 婷婷激情四射五月天| 日本免费黄色小视频| 1024av视频| 男女爱爱视频网站| 亚洲人成色77777| 一本二本三本亚洲码| 超碰影院在线观看| 国产91在线亚洲| 久久人人爽av| 成人综合视频在线| 超碰在线超碰在线| 一本久道中文无码字幕av| www.欧美激情.com| 青青在线视频免费| 美女黄色免费看| 中国老女人av| 国产精品视频中文字幕| 成人午夜视频在线观看免费| 四虎成人在线播放| 一本久道综合色婷婷五月| 欧美人成在线观看| 色综合五月婷婷| 尤蜜粉嫩av国产一区二区三区| 日本阿v视频在线观看| 国内外成人免费在线视频| 九色在线视频观看| 免费一级特黄毛片| 真实国产乱子伦对白视频| 第四色婷婷基地| 亚洲77777| 中文字幕在线观看第三页| 1024精品视频| 免费看日本毛片| 播放灌醉水嫩大学生国内精品| 国产精品久久国产| 国产va亚洲va在线va| 国产美女主播在线| 免费在线看黄色片| av在线播放亚洲| 日韩免费视频播放| 男人添女人下面高潮视频| 97在线国产视频| 韩国日本在线视频| 青青草原av在线播放| 97超碰青青草| 88av.com| 色免费在线视频| 国产又黄又猛又粗| 亚洲精品成人在线播放| 一级片免费在线观看视频| 黄频视频在线观看| 400部精品国偷自产在线观看| 国产日韩视频在线播放| 日本大胆人体视频| 国产在线观看福利| 在线观看免费污视频| 欧美日韩视频免费在线观看| 丁香色欲久久久久久综合网| 久久精品国产精品亚洲色婷婷| 久久久久免费精品| 欧美视频国产视频| 久久久亚洲国产精品| 黄色片视频在线免费观看| 天天爽天天爽夜夜爽| 久久出品必属精品| 青青草国产精品视频| 亚洲欧美日韩一级| 隔壁人妻偷人bd中字| 91色国产在线| 欧美图片激情小说| 日韩av资源在线| 日本一二三区视频在线| 日韩av在线第一页| 色姑娘综合天天| 无码少妇一区二区三区芒果| 热这里只有精品| 成年人网站大全| 男人天堂av片| 午夜天堂在线视频| 国产精品wwwww| www污在线观看| 一起操在线视频| 91黄色小网站| 国产1区2区3区中文字幕| www黄色在线| 国产视频一视频二| 久久精品国产精品亚洲精品色 | 亚洲色图久久久| 日本午夜激情视频| 日本成人性视频| 欧美视频亚洲图片| 男人天堂成人在线| 欧美三级在线观看视频| 久久人妻无码一区二区| 天天干天天操天天做| 嫩草av久久伊人妇女超级a| 国产日韩av网站| 日本一本中文字幕| 日韩中文字幕在线不卡| 韩国黄色一级大片| 性生活免费观看视频| 免费观看国产视频在线| 亚洲欧美日韩网站| 亚洲在线观看网站| 日韩av片免费观看|