Добрый день.
Задача стоит такая:
Надо скачать файл с сайта. Файл генерируется автоматически при клике по определенной кнопке.
<input type="submit" value="Сформировать">
Задача осложняется тем, что эта кнопка защищена авторизацией. Ее мы успешно преодолеваем при помощи curl. Далее, страница, на которой отображается кнопка составляется из 3 iframe. В одном из iframe находится наша кнопка. Жмем на кнопку - получаем .xls файл с нужными нам данными.
Т.е. путь выглядит следующим образом:
Страница авторизации -> вводим данные и авторизуемся -> попадаем на страницу с 3 iframe -> жмем кнопу и получаем файл.
Есть вариант подключиться по curl сразу к странице с кнопкой. Т.е. на страницу из фрейма, через curl собрать для получения файла не выходит.
$file = '********************';
$sub = 'Войти';
$f = fopen($file, 'w');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '********************');
curl_setopt($ch, CURLOPT_USERPWD, $user . ":" . $pass);
curl_setopt($ch, CURLOPT_HTTPHEADER, $requestHeaders);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'price/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'price/cookie.txt');
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'login='.$login.'&password='.$password.'&submit=1');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'price=1&action2=generate&group[1]=ON&name[1]=01. Продукция Apple');
curl_setopt($ch, CURLOPT_FILE, $f);
curl_exec($ch);
fflush($f);
fclose($f);