Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблемы с функцией glob
Форумы портала PHP.SU » » Работа с сетью » Проблемы с функцией glob

Страниц (1): [1]
 

1. GlamCity - 12 Июля, 2013 - 07:21:23 - перейти к сообщению
Есть код:
PHP:
скопировать код в буфер обмена
  1.  
  2. $dir_from='\\\\10.4.11.2\\from_dir';
  3. $dir_to = '\\\\10.4.11.2\\fgif';
  4. foreach ($maps as $key => $value){
  5.         echo "<b>Каталог:</b> ".$value['old_folder']."<br />";
  6.         $old_file_path=$dir_from.'\\'.$value['old_folder'];
  7.         $mask = $dir_from.'\\'.$value['old_folder']."\\*.gif";  
  8.         echo "<b>Маска:</b> ".$mask."<br />";
  9.        
  10.         if(glob($mask)==false) echo "BAD";
  11.         foreach (glob($mask) as $old_file){
  12.                 echo "Старый путь файла: ".$old_file."<br />";
  13.        
  14.                 $from = fopen($old_file, "r");
  15.                 $contents = fread($from, 5000000);
  16.  
  17.                 echo "Старое имя файла: ".basename($old_file)."<br />";
  18.                 list ($nm, $dt, $ext) = split ('[.]', basename($old_file));
  19.                 echo "Срок: ".substr($dt, 2, 2)."<br />";
  20.  
  21.                 $new_file=$dir_from.'\\'.$value['old_folder'].'\\'.$value['new_filename'].'-'.$dt.'.gif';
  22.                 echo "Новое имя файла в $dir_from: ".$new_file."<br /><br />";
  23.                 $to = fopen($new_file, "wb");
  24.                 fwrite($to, $contents);
  25.                 touch($new_file, filemtime($old_file));
  26.                 fclose($to);
  27.  
  28.                 if(date("d-m-Y", filemtime($old_file))==date("d-m-Y")){
  29.                         $new_file=$dir_to.'\\'.$value['new_filename'].'-'.substr($dt, 2, 2).'.gif';
  30.                         echo "Новое имя файла в $dir_to: ".$new_file."<br /><br />";
  31.                         $to = fopen($new_file, "wb");
  32.                         fwrite($to, $contents);
  33.                         touch($new_file, filemtime($old_file));
  34.                         fclose($to);
  35.                 }
  36.        
  37.                 fclose($from);
  38.         }
  39.         echo "<br /><br /><br /><br />";
  40. }


Если выполнять его в браузере, то все работает нормально, но если запускать в консоли на ubuntu, то скрипт вешается на строках:
PHP:
скопировать код в буфер обмена
  1. if(glob($mask)==false) echo "BAD";
  2. foreach (glob($mask) as $old_file){

Т.е. пишет, соответственно: BAD и цикл не выполняется.
Вопрос: работает ли glob с сетевыми путями? Если да, то в чем ошибка в коде? Если нет, то какой функцией его заменить, чтобы просмотреть все файлы с определенным разрешением в папке?

 

Powered by ExBB FM 1.0 RC1