2013-10-09 5 views
-1

Функция Еогеасп не работает, как я ожидал:функция Еогеасп не работает правильно

<?php 

$folders = scandir('../Users/'); 
foreach($folders as $item): 
    if ((substr($item, 0, 1) == '.') || (preg_match("/\.php$/", $item))) 
      continue; 

    if (is_dir("../Users/$item")) 
      $target_folders = @scandir("../Users/$item/processed/"); 
    foreach($target_folders as $target_item){ 

     if ((!preg_match("/^[.]/",$target_item)) 
      || (!is_dir("../Users/$item/processed/$target_item"))){ 
      if ((substr($target_item, 0, 1) == '.')) 
      continue;  
      } 
     } 
     $srcfile= ("../Users/$item/processed/".$target_item); 
     $dstfile= ("processed/".$target_item); 
     copy($srcfile, $dstfile); 
     unlink($srcfile); 
endforeach; 
array_map('unlink', glob("processed/*.zip")); 
?> 

честно я не знаю, что происходит не так с ним, так как ее дубликат работает просто отлично. Сейчас он перемещает только один из файлов, а не перемещает их все. Как я уже сказал, его дубликат прекрасно работает, если вы хотите, чтобы я опубликовал его, а также дайте мне знать.

+3

Nest ваш код правильно, и вы будете видеть более легко, что перемещение файлов не находится внутри Еогеасп, так что это будет только переместите один файл –

+1

Только некоторые советы, многие другие люди будут смотреть на ваш вопрос, если вы отступаете ваш код при копировании его в SO –

ответ

1

движется логика находится вне цикла, я полагаю, здесь правильная версия:

$folders = scandir('../Users/'); 
foreach($folders as $item) 
{ 
    if ((substr($item, 0, 1) == '.') || (preg_match("/\.php$/", $item))) 
     continue; 
    if (is_dir("../Users/$item")) 
    { 
     $target_folders = @scandir("../Users/$item/processed/"); 
     foreach($target_folders as $target_item) 
     { 
      if ((!preg_match("/^[.]/",$target_item)) || (!is_dir("../Users/$item/processed/$target_item"))) 
      { 
       if ((substr($target_item, 0, 1) == '.')) 
        continue; 
       $srcfile= ("../Users/$item/processed/".$target_item); 
       $dstfile= ("processed/".$target_item); 
       copy($srcfile, $dstfile); 
       unlink($srcfile); 
      } 
     } 
    } 
} 
array_map('unlink', glob("processed/*.zip")); 
+0

работали спасибо да, я удивляюсь, почему другой работает тогда lol – TechLifeForgotten

Смежные вопросы