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一区二区
爱情岛论坛亚洲首页入口章节| 国产在线视频综合| 国产在线播放观看| 污污污污污污www网站免费| caoporm在线视频| 亚洲综合在线一区二区| www.久久久久久久久久久| 杨幂毛片午夜性生毛片| 岛国av免费在线| 懂色av一区二区三区四区五区| 国产三级精品三级在线| 黄瓜视频免费观看在线观看www| 国内精品国产三级国产aⅴ久| 日本免费在线视频观看| 国产乱人伦精品一区二区三区| 国产女主播自拍| 国产极品美女高潮无套久久久| 日本精品www| 久久婷婷国产91天堂综合精品| √天堂资源在线| 亚洲一二三av| 乱熟女高潮一区二区在线| 青青草精品视频在线| 日韩av在线综合| 美女网站色免费| 99热久久这里只有精品| 亚洲爆乳无码专区| gogogo免费高清日本写真| 成人免费播放器| 日本激情综合网| 久久这里只有精品8| 九九视频精品在线观看| 特级西西444www| 37pao成人国产永久免费视频| 亚洲av无日韩毛片久久| 99在线观看视频免费| 成年网站免费在线观看| www.欧美黄色| 黄色一级片免费的| 国产成人无码一二三区视频| 青青草原国产免费| 少妇性l交大片| 水蜜桃色314在线观看| 天堂网成人在线| 成人精品视频一区二区| 日韩成人手机在线| 伊人国产精品视频| 午夜两性免费视频| av免费中文字幕| 丰满少妇久久久| avav在线播放| 黄色污污在线观看| 热这里只有精品| 欧美一级特黄aaa| 欧美激情第3页| 日韩大片一区二区| wwwwww.色| mm1313亚洲国产精品无码试看| 精品丰满人妻无套内射| 玖玖精品在线视频| 成年人免费观看的视频| 五月激情婷婷在线| 色播五月综合网| 天天摸天天舔天天操| 成人性生生活性生交12| 亚洲不卡视频在线| 久久国产精品国产精品| 国产日韩欧美久久| 99精品视频国产| 中国一级黄色录像| 国产香蕉一区二区三区| 国产欧美久久久久| 夜夜添无码一区二区三区| 欧美国产视频一区| 国产人妻777人伦精品hd| 国产91在线免费| 国模杨依粉嫩蝴蝶150p| 色悠悠久久综合网| 99精品视频网站| 久久99久久99精品| 亚洲色图38p| 中文字幕第三区| 免费在线观看亚洲视频| 冲田杏梨av在线| 日本不卡一区二区三区四区| av动漫在线免费观看| 乱妇乱女熟妇熟女网站| 激情视频免费网站| 9色视频在线观看| 成年人黄色片视频| 福利网在线观看| 国产男女在线观看| 亚洲欧美手机在线| 国产天堂视频在线观看| 国产视频一区二区三区在线播放| 亚洲一区精品视频在线观看| 人妻激情另类乱人伦人妻| 波多野结衣家庭教师视频| 超碰人人草人人| 欧美二区在线视频| 亚洲免费av网| 激情综合网俺也去| 国产精品www在线观看| 高清av免费看| 无码人妻丰满熟妇区96| 日本一级淫片演员| 色婷婷狠狠18| 免费无码国产v片在线观看| 成人免费黄色av| 999精彩视频| 日韩欧美视频网站| www婷婷av久久久影片| 午夜精品久久久久久久99热影院| 香港三级韩国三级日本三级| xxxx在线免费观看| 中文字幕第100页| 色婷婷综合久久久久中文字幕| 六月婷婷激情网| 97人人模人人爽人人澡| 中文字幕22页| 在线观看国产中文字幕| 天天碰免费视频| 日韩有码免费视频| 青青草原av在线播放| 国产日本在线播放| 日日摸日日碰夜夜爽无码| 日韩欧美视频免费在线观看| 色撸撸在线观看| 91看片淫黄大片91| 好吊色视频988gao在线观看| 大地资源第二页在线观看高清版| 日韩大片一区二区| 国产乱码一区二区三区四区| 99中文字幕在线| 亚洲一级片免费观看| 在线观看三级网站| 奇米777四色影视在线看| 免费看欧美一级片| 霍思燕三级露全乳照| 91国视频在线| 中文字幕网av| 爱爱爱视频网站| 国产黄色片免费在线观看| 欧美一区二区中文字幕| 男人亚洲天堂网| 欧美男女交配视频| 久久久成人精品一区二区三区| 久久免费一级片| 免费看一级大黄情大片| 一区二区三区 日韩| 亚洲综合20p| 日韩xxxx视频| av亚洲天堂网| 久久久久免费看黄a片app| 凹凸日日摸日日碰夜夜爽1| 日本超碰在线观看| 免费日韩在线观看| 黄色一级大片在线观看| 懂色av一区二区三区四区五区| 人人妻人人澡人人爽欧美一区双 | 青青在线免费观看视频| 一区二区三区免费播放| 最近中文字幕免费mv| 日本少妇高潮喷水视频| 亚洲一区二区福利视频| 好吊妞无缓冲视频观看| 97超碰人人爽| 亚洲中文字幕无码专区| 国产传媒免费观看| www.玖玖玖| 亚洲黄色网址在线观看| 黄色免费网址大全| 欧美视频在线第一页| 污色网站在线观看| 精品久久久久久无码中文野结衣| 成人免费视频久久| 欧美视频在线观看视频| 粉色视频免费看| 动漫av网站免费观看| 久久久天堂国产精品| 99日在线视频| 日韩欧美国产片| 奇米精品一区二区三区| 国产精品videossex国产高清| 亚洲怡红院在线| 中文久久久久久| 久久久精品三级| 日韩免费毛片视频| 国产在线观看福利| 精品无码国模私拍视频| cao在线观看| 成年人网站国产| 欧美一区二区激情| 精品无码国产一区二区三区av| youjizz.com亚洲| 四虎影院一区二区| 日本在线观看视频一区| 午夜视频在线网站| 天美一区二区三区| 波多野结衣免费观看|