簡體   English   中英

使用PHP和創建日期重命名目錄中的所有文件

[英]Rename all files in directory using PHP and creation date

我在Synology NAS上遇到問題/挑戰。 我已連接一個IPcam,該IPcam拍攝的文件名如下:00A8F700CB18()_ 1_20140107000224_3674.jpg

現在,我想將所有這些文件重命名為:Tue 07-01-2014_11-17-26.jpg(包含日期和時間) 這是一個關鍵:我見過(PHP)腳本使用“ jhead”或“ stat -c”,很遺憾,這些不是 Synology上的選項! 我煮了一些東西,當我使用單個文件時,它可以工作,現在我想在目錄中的所有文件上運行此腳本! 請幫忙,我不是一個經驗豐富的PHP程序員,我對腳本中的說明行感到非常高興,這給我和任何發帖的人一個學習的曲線;)

您可以在單個文件上使用的腳本如下所示:

<?php
$stat = stat('/volume1/Ipcam/_Test/00A8F700CB18()_1_20140107000223_3673.jpg');
$motdate = ($stat['ctime']);
$newname =  (gmdate("D d-m-Y_H-i-s", $motdate));
rename("/volume1/Ipcam/_Test/00A8F700CB18()_1_20140107000223_3673.jpg" . "/volume1/Ipcam/_Test/" . $newname . ".jpg");
?>

任何幫助,將不勝感激!

讀入scandirreaddir php函數。

他們讀取指定目錄中的一堆文件並返回文件名數組。

然后,您可以循環瀏覽這些文件,並將上述代碼應用於每個文件。

php.net上的示例非常易於使用和修改:)

您可以使用此修改的代碼

<?php
$dir    = '/volume1/Ipcam/_Test/';
$files = scandir($dir);
foreach($files as $file) {
$stat = stat($file);
$motdate = ($stat['ctime']);
$newname =  (gmdate("D d-m-Y_H-i-s", $motdate));
rename($file, $dir . $newname . ".jpg");
}
?> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM