Есть код: Код (Text): $dir_from='\\\\10.4.11.2\\from_dir'; $dir_to = '\\\\10.4.11.2\\fgif'; foreach ($maps as $key => $value){ echo "<b>Каталог:</b> ".$value['old_folder']."<br />"; $old_file_path=$dir_from.'\\'.$value['old_folder']; $mask = $dir_from.'\\'.$value['old_folder']."\\*.gif"; echo "<b>Маска:</b> ".$mask."<br />"; if(glob($mask)==false) echo "BAD"; foreach (glob($mask) as $old_file){ echo "Старый путь файла: ".$old_file."<br />"; $from = fopen($old_file, "r"); $contents = fread($from, 5000000); echo "Старое имя файла: ".basename($old_file)."<br />"; list ($nm, $dt, $ext) = split ('[.]', basename($old_file)); echo "Срок: ".substr($dt, 2, 2)."<br />"; $new_file=$dir_from.'\\'.$value['old_folder'].'\\'.$value['new_filename'].'-'.$dt.'.gif'; echo "Новое имя файла в $dir_from: ".$new_file."<br /><br />"; $to = fopen($new_file, "wb"); fwrite($to, $contents); touch($new_file, filemtime($old_file)); fclose($to); if(date("d-m-Y", filemtime($old_file))==date("d-m-Y")){ $new_file=$dir_to.'\\'.$value['new_filename'].'-'.substr($dt, 2, 2).'.gif'; echo "Новое имя файла в $dir_to: ".$new_file."<br /><br />"; $to = fopen($new_file, "wb"); fwrite($to, $contents); touch($new_file, filemtime($old_file)); fclose($to); } fclose($from); } echo "<br /><br /><br /><br />"; } Если выполнять его в браузере, то все работает нормально, но если запускать в консоли на ubuntu, то скрипт вешается на строках: Код (Text): if(glob($mask)==false) echo "BAD"; foreach (glob($mask) as $old_file){ Т.е. пишет, соответственно: BAD и цикл не выполняется. Вопрос: работает ли glob с сетевыми путями? Если да, то в чем ошибка в коде? Если нет, то какой функцией его заменить, чтобы просмотреть все файлы с определенным разрешением в папке?
Код (PHP): if(glob($mask)==false) Вообще не понимаю зачем так делать? Еще и без строгости. ОМГ. Если четно такая лажа написана.
Это тупо проверка для отладки. Скрипт не работает на строке Код (Text): foreach (glob($mask) as $old_file){ Тут, как я понимаю, проблемы с указанием пути к файлу. Путь такой: Код (Text): $dir_from='\\\\10.4.11.2\\from_dir'; Маска такая в итоге: Код (Text): \\10.4.11.2\from_dir\123\*.gif В чем ошибка?
Вы понимаете, что проблема не в Код (Text): if(glob($mask)==false) , а в Код (Text): foreach (glob($mask) as $old_file){ Если вы не можете ничего конкретно посоветовать, не надо флудить.
в браузере он под одним юзером запускается, а в консоли под другим, и прав нет доступа к папке и досвидос =)