Giờ các bác help

Discussion in 'Linux - PHP - Python - C# - Java' started by laogiavn, Jun 8, 2021.

  1. laogiavn

    laogiavn Sơ Nhập Giang Hồ

    E mới học code đang gặp khó khăn với đoạn này. E muốn viết bằng PHP chuyển các file từ các subfolder ra root folder theo dạng như sau:

    Code:
    root/1/a.html
    root/1/b.html
    root/2/c.html
    root/3/d.html
    Code:
    root/a.html
    root/b.html
    root/c.html
    root/d.html
    Mình có sử dụng code này nhưng ý mình muốn khi chạy hàm này nó sẽ auto move tất cả các file trong subfolder (các subfolder này thay đổi tên liên tục không cố định) ra root sau đó remove all subfolder đó ra mà mãi ko đc.

    Code:
    // Get array of all source files
    $files = scandir("source");
    // Identify directories
    $source = "source/";
    $destination = "destination/";
    // Cycle through all source files
    foreach ($files as $file) {
    if (in_array($file, array(".",".."))) continue;
    // If we copied this successfully, mark it for deletion
    if (copy($source.$file, $destination.$file)) {
    $delete[] = $source.$file;
    }
    }
    // Delete all successfully-copied files
    foreach ($delete as $file) {
    unlink($file);
    }
    
     
    Last edited: Jun 8, 2021
  2. mmo2013

    mmo2013 Khách Qua Đường

    Bạn lấy hết tất cả các sub folder rồi từ đó lấy hết file trong sub rồi move hết ra root xem.
     
    laogiavn likes this.
  3. thanh858036

    thanh858036 Sơ Nhập Giang Hồ

    copy('1/a.html', 'a.html');
     
    laogiavn likes this.
  4. laogiavn

    laogiavn Sơ Nhập Giang Hồ

    Mình có sử dụng code này nhưng ý mình muốn khi chạy hàm này nó sẽ auto move tất cả các file trong subfolder (các subfolder này thay đổi tên liên tục không cố định) ra root sau đó remove all subfolder đó ra mà mãi ko đc.
    Code:
    // Get array of all source files
    $files = scandir("source");
    // Identify directories
    $source = "source/";
    $destination = "destination/";
    // Cycle through all source files
    foreach ($files as $file) {
    if (in_array($file, array(".",".."))) continue;
    // If we copied this successfully, mark it for deletion
    if (copy($source.$file, $destination.$file)) {
    $delete[] = $source.$file;
    }
    }
    // Delete all successfully-copied files
    foreach ($delete as $file) {
    unlink($file);
    }
     
  5. Nai

    Nai MiddleMan Staff Member

    Code:
    <?php
        $dirs = scandir('.');
        array_shift($dirs);
        array_shift($dirs);
       
        if(!empty($dirs))
            foreach($dirs as $dir)
                if(is_dir($dir)){
                    $files = scandir($dir.'/');
                    if(!empty($files))
                        foreach($files as $file){
                            if(is_file($dir.'/'.$file))
                                rename($dir.'/'.$file, $file);
                        }
                    rmdir($dir);
                }
        
     
    laogiavn likes this.
  6. thitgaluoc

    thitgaluoc Hương Chủ

    nếu bạn chỉ cần làm 1 lần thì k cần code, mở folder đó lên search *.html rồi Cut hết các file tìm được ra dán vào root folder là xong
     
    laogiavn likes this.
  7. laogiavn

    laogiavn Sơ Nhập Giang Hồ

    Ok cảm ơn bác nhé! Đúng cái e đang cần
    E làm nhiều lần nên mới cần code chứ ko e cut cho nhanh :D