2014-01-08 6 views
0

У меня есть проблема/вызов на моем NAS Synology. У меня есть IPcam связного, который делает снимки с именами файлов, как: 00A8F700CB18() _ 1_20140107000224_3674.jpgПереименуйте все файлы в каталог с помощью PHP и дату создания

Теперь я хотел бы переименовать все эти файлы на что-то вроде: Вт 07-01-2014_11-17-26.jpg (с датой & раз) И вот кикер: Я видел (PHP) скрипты, используя «jhead» или «stat -c», к сожалению, это не вариант на Synology! Я приготовил что-то, что работает, когда я использую один файл, теперь я хотел бы запустить этот скрипт во всех файлах в каталоге! Пожалуйста, помогите, я не опытный PHP-программист, и я получаю много радости в пояснительных строках в сценариях, дает мне и всем, кто заставляет это сообщение изучать кривую;)

Сценарий u можно использовать на один файл выглядит примерно так:

<?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"); 
?> 

любая помощь будет оценена!

+0

Google: PHP проходное файлов в каталоге. Вы уже сделали настоящую трудную часть. – Jessica

+0

A .... 'DirectoryIterator'? – Wrikken

ответ

1

читать в scandir или readdir php функции.

Они читают кучу файлов в указанной директории и возвращают массив имен файлов.

Затем вы можете просмотреть эти файлы и применить приведенный выше код к каждому файлу.

Примеры на php.net довольно легко использовать и модифицировать :)

0

Вы можете использовать эту модификацию вашего кода

<?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"); 
} 
?>