Php 重命名图像并将重命名后的图像移动到新创建的目录中

Php 重命名图像并将重命名后的图像移动到新创建的目录中,php,rename,mkdir,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($f

在这里我想创建一个名为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++;
         }
      }
     }
$dir='c:/xampp/htdocs/practice/haha';
$i=1;
if(is_dir($dir)){
echo目录名($dir)。“
”; $file=opendir($dir); while(($data=readdir($file))!==false){ 如果($data!='.&&$data!='..')){ $info=pathinfo($data,pathinfo_扩展名); 如果(!file_存在($dir.'/tour')){ mkdir($dir./tour/); } 重命名($dir.$data,$dir.'/tour/.'image.$i..jpg'); $i++; } } }
您缺少一些
/

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
试一试


相反。

这应该适合您:

在这里,我只是从您的目录与所有图像。如果该目录不存在,我将创建该目录,然后移动所有图像 有



如果我答对了,你想从
c:/xampp/htdocs/practice/haha
中获取所有文件(仅图像?),然后将它们移动到
c:/xampp/htdocs/practice/haha/tour/FILE extension/image$I.jpg
?编辑我的帖子。路径信息()函数从重命名()中删除如果您没有注意到您更新了代码,那么function.FIle扩展名将被省略:D现在我看到了,但您只想移动图像?进入
c:/xampp/htdocs/practice/haha/tour/image$i.jpg
和所有
文件/图像?来自c:/xampp/htdocs/practice/haha
   rename($dir .'/' . $data,$dir.'/tour/'.'image '.$i.'.jpg');
              ^^^^^^^^
<?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");
    }

?>