Пытаюсь скачать с ftp сервера (ftp://ftp.zakupki.gov.ru/fcs_regions/) файлы. Возникает ошибка PHP Warning: ftp_get(): Opening BINARY mode data connection for notification_Adygeja_Resp_2015101600_2015101700_003.xml.zip (12140 bytes). Причём файлики почти всегда разные. Подскажите в чём проблема? Вот код скрипта (запускаю через консоль под ubuntu): Код (Text): <?php define("num_regions",86); //num of regions in RF $ftp_server = "ftp.zakupki.gov.ru"; $ftp_user_name = $ftp_user_pass = "free"; $conn_id = ftp_connect($ftp_server) or die("Can not connect to $ftp_server"); if (!ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)) { echo "Can not login by $ftp_user_name\n"; exit(1); } ftp_pasv($conn_id, true); ftp_chdir($conn_id, "/fcs_regions/"); $regions = ftp_nlist($conn_id, "."); array_splice($regions, num_regions); //take only folders for regions. There's still some - what I've found (the old sample , probably) chdir('../../tmp/'); //folder for download $zip = new ZipArchive; foreach ($regions as $region) { ftp_chdir($conn_id, $region."/notifications/currMonth/"); mkdir($region); //create folder for region chdir($region); //go to folder for region echo $region."\n"; $notifications = ftp_nlist($conn_id, "."); foreach ($notifications as $notification) { if(ftp_get($conn_id, $notification, $notification, FTP_BINARY)){ $dir = substr($notification,0,strlen($notification)-7); //folder for contracts from downloaded file mkdir($dir); if ($zip->open($notification)) { $zip->extractTo($dir); $zip->close(); } else { echo "Ошибка $notification"; } } unlink($notification); //delete downloaded file } echo "end $region\n"; chdir("../"); ftp_chdir($conn_id, "../../../"); } ftp_close($conn_id); ?>
В документации в комментариях к функции ftp_pasv пишут, что ошибки возникают в случайном порядке. Попробуй обновить версию PHP на рабочей машине, перейти на linux и cURL.
php -v выдаёт такое: PHP 5.5.9-1ubuntu4.14 (cli) (built: Oct 28 2015 01:34:46) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies как тут php обновить, не подскажите?