重命名文件夹中的所有文件

时间:2011-11-02 22:56:12

标签: php usort

我正在使用我的iPhone应用程序从我的数据库中删除所选图像,删除我想要的图像后,它需要重命名文件夹中剩余的所有其他图像。所以说我的文件夹有3个图像:img1,img2,img3等等。假设我删除img1,我继续unlink()它现在我需要将img2重命名为img1然后将img3重命名为img2。

这是我现在的代码

<?php
$dbc = mysql_connect('hostname', 'login', 'password');
if(!$dbc){
die('not connected : ' . mysql_error());
}

$db_selected = mysql_select_db("database", $dbc);
if(!$db_selected){
die("could not connect to DB : " . mysql_error());  
}

$username = $_GET['username'];
$image = $_GET['imagename'];

$check = mysql_query("SELECT image FROM members WHERE username='$username'");
$findMem = mysql_num_rows($check);

if($findMem > 0){

while($row = mysql_fetch_array($check) or die(mysql_error())){
$images = $row["image"];
$images = $images - 1;
unlink("./$image");

mysql_query("UPDATE members SET image='$images'
WHERE username='$username'");
}

$path = "$username/default/";


$files = glob("{$path}/{*.jpg,*.jpeg,*.png}", GLOB_BRACE);


function filetime_callback($a, $b)
{
  if (filemtime($a) === filemtime($b)) return 0;
  return filemtime($a) > filemtime($b) ? -1 : 1; 
} 

// Then sort with usort()
usort($files, "filetime_callback");

}

?>

如您所见,我有一个功能设置,它将按创建日期排序所有文件。

我仍然希望创建的日期保持不变,我只需要重命名文件夹中的文件。可能有50张图片,所以它必须是某种循环。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

请参阅http://php.net/manual/en/function.rename.php

您可能应该依赖其他一些机制来订购文件。我建议您在数据库中按字段添加订单并根据该字段进行排序。这样,您可以使文件的排序与您提供的文件无关。