Большое спасибо за помощь.
Разобрался с закачкой. Работает со следующими опциями
PHP |
if (!$ch = curl_init("http://www.server.org.ru/dir/file.ver")) { die("Couldn't initialize a cURL handle"); } $fp = fopen ("file.ver", "w"); $ret = curl_setopt($ch, CURLOPT_FILE, $fp); $ret = curl_setopt($ch, CURLOPT_HEADER, 0); $ret = curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //$ret = curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); $ret = curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0); $ret = curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); $ret = curl_setopt($ch, CURLOPT_PROXY, '172.16.130.128'); $ret = curl_setopt($ch, CURLOPT_PROXYPORT, '3128'); $ret = curl_setopt($ch, CURLOPT_PROXYUSERPWD, "misha:qwerty"); $ret = curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_exec ($ch); curl_close($ch); fclose($fp); |
Все таки CURLOPT_HTTPPROXYTUNNEL дб 0, иначе не работает.
При наличии CURLOPT_RETURNTRANSFER и любым значением - не работает.
CURLOPT_HEADER дб 0Б иначе добавляет заголовок в файл.
Часть, которая проверяет ошибку закачки - у меня не работает. Дело в том, что у меня squid и он, в случае не авторизации, посылает файл, в котором говорится, что произошла ошибка авторизации.
Теперь осталась задача, как сделать универсальный обработчик ошибок, что бы не зависимо от типа прокси - он определял - выкачался или нет файл.