переименовывать изображения и перемещать переименованные изображения во вновь созданный каталог

Здесь я хочу создать новый каталог с именем c: / xampp / htdocs / haha ​​/ tour / и в каталоге я хочу переместить мои переименованные изображения. Вот, мне удалось создать новый каталог, но я не могу переместить и переименовать мои изображения .Как я могу решить эту проблему??

$dir='c:/xampp/htdocs/practice/haha';

$i=1;
if(is_dir($dir)){
echo dirname($dir).'</br>';
$file=opendir($dir);

while(($data=readdir($file))!==false){
if($data!='.' && $data!='..'){

$info=pathinfo($data,PATHINFO_EXTENSION);

if(!file_exists($dir.'/tour')){

mkdir($dir.'/tour/');

}

rename($dir.$data,$dir.'/tour/'.'image '.$i.'.jpg');

$i++;
}
}
}

1

Решение

Вам не хватает некоторых /:

rename($dir.$data,$dir.'/tour/'.'image '.$i.'.jpg');
^---

$data не содержит ЛЮБОГО /так что вы строите

rename('c:/xampp/htdocs/practice/haha' . 'foo', etc...)

который становится

rename('c:/xampp/htdocs/practice/hahafoo', etc...)
^^^^^^^---doesn't exist

Пытаться

   rename($dir .'/' . $data,$dir.'/tour/'.'image '.$i.'.jpg');
^^^^^^^^

вместо.

1

Другие решения

Это должно работать для вас:

Здесь я просто получаю все изображения из вашего каталога с glob(). Я создаю каталог, если он еще не существует с mkdir() а затем переместить все изображения
с rename().

<?php

$dir = "c:/xampp/htdocs/practice/haha";
$files = glob($dir . "/*.{jpg,png,gif,jepg}", GLOB_BRACE);//Create directory
if (!file_exists($dir . "/tour")) {
mkdir($dir . "/tour");
}

//Move all images
foreach($files as $key => $file) {
rename($dir . "/" .$data, $dir . "/tour/image" . ($key+1) . ".jpg");
}

?>
1

По вопросам рекламы [email protected]