重命名图像并在新创建的目录中移动重命名的图像

时间:2015-02-25 14:05:54

标签: php rename mkdir

这里我想创建一个名为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++;
         }
      }
     }

2 个答案:

答案 0 :(得分: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 :(得分: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");
    }

?>