久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久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號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲影院天堂中文av色| 国产精品国码视频| 另类欧美日韩国产在线| 日本成人手机在线| 国产精品日韩欧美一区| 久久国产亚洲精品| 日韩在线短视频| 99热精品久久| 日韩午夜一区| 亚洲欧洲国产精品一区| 亚洲图片久久| 日本aⅴ亚洲精品中文乱码| 欧美精品影院| 国产一区一一区高清不卡| 正在播放日韩精品| 日韩精品免费一区二区在线观看 | 国产欧美高清视频在线| 国产精品国码视频| 国产精品美女午夜爽爽| 精品亚洲精品| 日韩午夜在线| 美女久久久久久| 在线亚洲观看| 久久精品国产99国产精品| 久久久久国产精品一区三寸| 久久亚洲欧美| 欧美aa在线视频| 蜜桃久久久久久久| 中文字幕人成乱码在线观看| 玖玖玖国产精品| 精品一区二区三区亚洲| 国产一区91| 欧美男人天堂| 日韩中文字幕不卡| 国产精品伦理久久久久久| 鲁大师影院一区二区三区| 福利一区和二区| 日韩一区二区三区精品 | 国产精品一区免费在线| 精品欧美激情在线观看| 麻豆精品99| 91欧美日韩在线| 久久av在线| 999国产精品永久免费视频app| 欧美精品二区| 日韩动漫一区| 国产v综合v| 国产精品不卡| 国产探花一区在线观看| 视频在线观看一区| 久久久亚洲一区| 国产欧洲在线| 久久亚洲黄色| 免费在线日韩av| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 亚洲精品91| 欧美黄色精品| 国产日本久久| 亚洲综合色婷婷在线观看| 91精品国产福利在线观看麻豆| 福利一区二区三区视频在线观看| 国产精品一区二区三区四区在线观看| 午夜久久一区| 9色精品在线| 香蕉久久精品| 色天使综合视频| 一区二区三区四区日本视频| 精品九九在线| 高清日韩欧美| 国产一区二区三区久久| 老鸭窝一区二区久久精品| 日韩国产在线观看一区| 日韩专区视频网站| 日本不卡不码高清免费观看 | 亚洲有吗中文字幕| 中文字幕日韩亚洲| 日本不卡视频一二三区| 欧美天堂一区| 精品一区二区三区中文字幕视频 | 天堂成人国产精品一区| 男人的天堂久久精品| 日本成人手机在线| 国产黄色精品| 国产成人免费| 国产99亚洲| 亚洲精品黄色| 国产毛片精品| 日本黄色精品| 九一精品国产| 日韩av中文在线观看| 久久99精品久久久野外观看| 91偷拍一区二区三区精品| 久久久久网站| 欧美影院精品| 麻豆免费精品视频| 国产一区欧美| 婷婷久久免费视频| 老牛影视精品| 亚洲一区二区三区在线免费| 精品视频高潮| 午夜在线观看免费一区| 久久gogo国模啪啪裸体| 欧美日韩黑人| 国产一区二区三区网| 亚洲一区二区小说| 黄在线观看免费网站ktv| 日韩精品一区二区三区中文 | 婷婷激情一区| 欧美片网站免费| 好吊一区二区三区| 免费亚洲一区| 亚洲美女久久| 亚洲一区日韩| 99久久婷婷这里只有精品| 国产精品久久亚洲不卡| 男女精品网站| 九九久久电影| 999久久久精品国产| 你懂的国产精品永久在线| 石原莉奈一区二区三区在线观看| 欧美激情福利| 国产精品二区影院| 国产亚洲精品美女久久久久久久久久| 亚洲一区二区毛片| 日韩一级精品| 欧美~级网站不卡| 91精品一区国产高清在线gif | 久久国产成人午夜av影院宅| 精品国产美女a久久9999| 国产亚洲精品美女久久| 另类av一区二区| 婷婷激情久久| 国产综合精品| 亚洲精品中文字幕乱码| 亚洲二区精品| 99视频一区| 亚洲精选91| 日本视频中文字幕一区二区三区| 亚洲九九精品| 欧美亚洲色图校园春色| 久久狠狠亚洲综合| 国产精品v一区二区三区| 国产激情精品一区二区三区| 国产精久久一区二区| 精品视频在线观看网站| 精品少妇一区| 天堂√中文最新版在线| 成人看片网站| 亚洲激情另类| 蜜臀久久久久久久| 日韩精品一级| 精品伊人久久| 欧美中文字幕一区二区| 欧美在线综合| 久久超碰99| 香蕉久久99| 日韩精品免费视频人成| 久久99久久久精品欧美| 久久久久久免费视频| 免费欧美日韩| 国产精品毛片aⅴ一区二区三区| 久久99高清| 亚洲精品123区| 久久不见久久见免费视频7| 国产一区久久| 欧美国产极品| 蜜臀av一区二区在线免费观看| 精品中文在线| 日韩中文字幕一区二区高清99| 日产午夜精品一线二线三线| 三级一区在线视频先锋| 国产一区二区三区久久| 一区二区国产精品| 香蕉成人av| 日韩久久99| 欧美日韩黑人| 国产亚洲一区二区三区不卡| 国产成人精品免费视| 在线 亚洲欧美在线综合一区| 欧美日韩精品一区二区三区在线观看| av中文字幕在线观看第一页| 亚洲综合电影一区二区三区| 国产伦精品一区二区三区视频| 日本午夜大片a在线观看| 亚洲一区二区日韩| 国产91欧美| 日本不卡一二三区黄网| 欧美.日韩.国产.一区.二区| 欧美亚洲精品在线| 国产传媒在线| 天堂资源在线亚洲| 日韩不卡免费视频| 欧美日韩精品一区二区三区视频 | 激情五月色综合国产精品| 亚洲精品欧美| 免费在线看一区| 蜜臀精品一区二区三区在线观看| 视频一区中文字幕国产| 国产亚洲一区二区手机在线观看| 粉嫩av一区二区三区四区五区 |