За последние 24 часа нас посетили 23587 программистов и 1549 роботов. Сейчас ищут 895 программистов ...

file open доступ!

Тема в разделе "Прочие вопросы по PHP", создана пользователем immortal.1986, 13 янв 2014.

  1. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Добрый день! Честно до конца не понимаю что и как! но попробую!
    есть!серое но рабочее
    Код (PHP):
    1. $localDir = 'sales';
    2. $remoteDir = '../testT';
    3. // Обрабатываем локальную папку!
    4. if ($handle = opendir($localDir)) {
    5.     while (false !== ($entry = readdir($handle))) {
    6.         $ent[] = $entry;
    7. }
    8.         closedir($handle);
    9.             $countFile = count($ent);
    10. }else{
    11.     return false;
    12. }
    13. // теперь проверяем на удалённом если есть копируем с уд на локальный!
    14.  
    15. if($countFile <= 2){
    16.     if ($handle = opendir($remoteDir)) {
    17.         while (false !== ($entry = readdir($handle))) {
    18.             rename($remoteDir.'/'.$entry, $localDir.'/'.$entry );
    19.         }
    20.         closedir($handle);
    21.         if ($handle = opendir($localDir)) {
    22.             while (false !== ($entry = readdir($handle))) {
    23.                 $ent[] = $entry;
    24.             }
    25.                 closedir($handle);
    26.  
    27.         }else{
    28.             return false;
    29.         }
    30.     }else{
    31.         return false;
    32.     }
    33. }else{
    34.     return false;
    35. } 
    вроде как работает но если первый раз запустить сценарий то выдаёт вот ->
    Warning: rename(../testT/.,sales/.) [function.rename]: Отказано в доступе. (code: 5) in Z:\home\localhost\www\csv\index.php on line 23

    Warning: rename(../testT/..,sales/..) [function.rename]: Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. (code: 32) in Z:\home\localhost\www\csv\index.php on line 23

    вторай раз запускаю нету ошибки (очивидно просто нету файлов уже!)
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Для начала поймите, каким процессом занят файл
    $ lsof файл
    http://ru.wikipedia.org/wiki/Lsof

    Для отладки воспользуйтесь функцией exec в скрипте, если из консоли нет результата. т.е перед исполнением функции rename
    http://php.ru/manual/function.exec.html

    Добавлено спустя 6 минут 10 секунд:
    Вообще задача к чему сводится? Возможно тут обычного scp или rsync достаточно?
     
  3. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    задача проста! проверяем лок папку! если пуста -> проверяем удал. папку! если не пуста копируем в локальную!Если лок не пуста запускаем скрипт!

    и все равно...... лежать 4 тестовых файла! чем они там заняты! ума не приложу!
     
  4. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
  5. phpjunior

    phpjunior Новичок

    С нами с:
    23 дек 2013
    Сообщения:
    73
    Симпатии:
    0
    Адрес:
    Барнаул
    Возможно доступ к RENAME файлу закрыт укажите ему CHMOD 777
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    У файлов 0666. И не нужно им писать 0777.
    И запомните одну такую вещь, если у папки уже стоят права 0777, не надо ничему уже там ставить права, они не сработают.