Переименовка на PHP

A6
На сайте с 19.10.2007
Offline
25
430

У меня в папке x лежат где-то 10к картинок. Их названия примерно такие "klsd231kjbb.jpg". Надо эти картинки переименовать в такой вид:"1.jpg", "2.jpg" и т.д. Подскажите, пожалуйста, как это можно сделать на PHP?

P.S. Очень желательно, чтобы самому можно было задать номер, с которого бы начиналось переименование. Например:"345.jpg" и дальше до "10345.jpg".

grey109
На сайте с 15.06.2005
Offline
174
#1

Примерно так:

set_time_limit(0);

$start = 1;

if ($dir = opendir("/"))

{

while (false !== ($filename = readdir($dir)))

{

if ($filename!="." && $filename!="..")

{

rename ($dir."/".$filename, $start.".jpg");

$start++;

}

}

Писал без проверки, для теста лучше проверь как работает скрипт на нескольких файлах.

A6
На сайте с 19.10.2007
Offline
25
#2
grey109:
Примерно так:

set_time_limit(0);
$start = 1;
if ($dir = opendir("group1"))
{
while (false !== ($filename = readdir($dir)))
{
if ($filename!="." && $filename!="..")
{
rename ($dir."/".$filename, $start.".jpg");
$start++;
}
}
}
Писал без проверки, для теста лучше проверь как работает скрипт на нескольких файлах.

Ваш вариант выдает ошибку: "Warning: rename(Resource id #2/1.jpg,group1/1.jpg) [function.rename]: No such file or directory" . В чем дело, хз.

У меня работает такой вариант:


<?
set_time_limit(0);
$start = 1;
if ($dir = opendir("group1"))
{
while (false !== ($filename = readdir($dir)))
{


if ($filename!="." && $filename!="..")
{

rename ("group1/".$filename,"group1/". $start.".jpg");
$start++;
}
}
}
?>

Т.е. когда в rename первый аргумент вписан руками.

А вообще, большое спасибо вам за помощь!

C
На сайте с 11.10.2006
Offline
67
cap
#3
Ваш вариант выдает ошибку: "Warning: rename(Resource id #2/1.jpg,group1/1.jpg) [function.rename]: No such file or directory" . В чем дело, хз.

т.к. $dir вот этим

$dir = opendir("/")

получает указатель на папку, а не строкувую переменную, как хотят использовать тут

rename ($dir."/".$filename, $start.".jpg");

Объявите $dir в самом начале и все будет ок.

$dir_name = "group1";
тогда $dir = opendir($dir_name);
и rename ($dir_name."/".$filename,$dir_name."/". $start.".jpg");

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий