我有一堆隨機名稱的照片,我想在網上發佈,所以他們需要改名爲1.jpg,2.jpg,3.jpg等;PHP文件重命名神祕沒有錯誤圖像丟失
我寫了下面的代碼來實現這一目標
$i = 1;
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && is_file($path.'/'.$file)) {
$oldname = $path.'/'.$file;
$path_info = pathinfo($oldname);
rename($oldname, $path.'/'.($i).'.'.'jpg');
echo "Old name = <b>".$oldname."</b></br>";
echo "New name = <b>".$path.'/'.($i).'.'.'jpg'."</b></br></br>";
$i++;
}
}
closedir($handle);
}
和神奇的事情發生運行此腳本只有14圖片用名1.JPG剩餘,10.JPG到22.jpg後有22個文件的文件夾中當我再次刷新時,現在只剩下6張圖片,現在名字是1.jpg到6.jpg,即使經過一次又一次的刷新後,它們並沒有改變。
我嘗試註釋掉rename($oldname, $path.'/'.($i).'.'.'jpg');
只是爲了看看生成的內容舊名稱和新名稱,而另一類是totlly罰款像無論是新的名稱所產生的舊名稱是什麼我是想1.JPG到22.jpg
我嘗試了幾乎相同的代碼,將.JPG擴展名更改爲.jpg擴展名,因爲linux服務器對文件命名是區分大小寫的,而Windows不是此代碼全部工作正常;
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && is_file($path.'/'.$file)) {
$oldname = $path.'/'.$file;
$path_info = pathinfo($oldname);
echo $sub= substr($file,0,-4);
echo "<br>";
rename($oldname, $path.'/'.($sub).'.'.'jpg');
}
}
closedir($handle);
}
它在印度的早晨上午2點40,我只是一個學生這個問題是不是讓我去睡眠模式,請幫助我。
我把我的賭注放在一個路徑問題上。打印完整路徑,檢查權限... – Bramastic
是否有像'1.jpg'到'22.jpg'這樣的原始名稱?如果是,那麼當您嘗試將其他文件重命名爲相同名稱時,您將刪除這些文件。 – Barmar
你檢查了php_errors.log嗎? –