Копирование файлов в PHP

Тема в разделе "PHP", создана пользователем ramses21, 7 фев 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. ramses21

    ramses21 Постоялец

    Регистр.:
    20 июл 2008
    Сообщения:
    107
    Симпатии:
    16
    Здравствуйте!
    Вот понадобилось прибегнуть к помощи php , но в языках программирования я не силен. Знакомый немного помог, но не так немного как я хотел. А хотел(и хочу) я вот что сделать:

    есть папка shab, в ней лежат 15 файлов, задача скопировать эти файлы в папки
    shab1
    shab2
    shab3
    ...
    shab1013

    вот этим можно скопировать только в папку shab1
    PHP:
     <?
          if ($handle = opendir('shab1')) { 
                while (false !== ($namedir = readdir($handle))) { 
                  if (is_dir($namedir)){
                      
                      if ($handletwo = opendir('shab')) { 
                            while (false !== ($file = readdir($handletwo))) { 
                              if ($file != "." && $file != "..") { 
                                  Copy('shab/'.$file, 'shab1/'.$namedir1.'/'.$file); 
                              } 
                          }
                          closedir($handletwo); 
                      }                  
                  }   
              }
              closedir($handle); 
              echo ('Выполнено');
          }
          ?>
    как же мне скопировать во все папки сразу?
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    создать массив с путями и воткнуть вызов Copy(...) в цикл.

    Это тебе отправная точка, писать скрипт за тебя я не буду.
     
  3. ramses21

    ramses21 Постоялец

    Регистр.:
    20 июл 2008
    Сообщения:
    107
    Симпатии:
    16
    Неужели нет вариантов. чтоб скрипт проходил каждую папку и втыкал туда необходимые файлы, не используя названия папок?
    дело в том, что названия папок далеко не shab1 и shab2 ...
     
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    есть - рекурсивный обход директорий.
     
  5. *mm*

    *mm* Создатель

    Регистр.:
    1 окт 2009
    Сообщения:
    29
    Симпатии:
    2
    при обходе каталога, удобнее использовать рекурсию..
    вот пример простой функции:
    PHP:
    function recursiv($counter)
    {
    if(
    $counter>0)
    {
    print(
    $counter--)."<br>";
    recursiv($counter);
    }
    else return;
    }

    // И потом вызываешь функцию, например:

    recursiv(1013);

     
  6. satyra

    satyra Постоялец

    Регистр.:
    21 окт 2007
    Сообщения:
    73
    Симпатии:
    7
    Попробуй реализовать через exec
    <?php
    exec('cp -R /site/folder1/* /site/folder2');
    ?>
     
  7. Zak

    Zak Постоялец

    Регистр.:
    13 апр 2006
    Сообщения:
    94
    Симпатии:
    6
    PHP:
    // задаем вручную список папок
    $dirList = array(
      
    'papka1',
      
    '2',
      
    '7'
      
    );
    // или использовать glob('*')

    foreach($dirList as $dir)

      
    // тут твой код
       
    if ($handle opendir([B]$dir[/B])) { 
      
    // и т.д. 
       
    ...
       }


    }
     
Статус темы:
Закрыта.