Уважаемые коллеги. Я пишу скрипт автоскачивания прайсов из кабинета дилера на сайте http://gastrorag.ru/dealers/cabinet/ в папку на своем фтп. В кабинет захожу, используя curl, получаю список ссылок на прайсы без каких либо проблем. Но ссылки имеют вид <a href="file.php?id=2121">....</a>. Т.е. вот эти file.php?id=2521 я получаю, но как из этого получить сам файл? Вот так пытаюсь: PHP: $url="http://gastrorag.ru/dealers/cabinet/file.php?id=2121"; //ссыл $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSLVERSION,3); $data = curl_exec ($ch); Но возникает ошибка - error, don't access right, что видимо правильно, ведь я пытаюсь скачать как бы файл file.php. Я так думаю, что задача решения не имеет?
А у диллера нет API для таких вещей? Ты не пытаешься скачать файл php, видимо, из кабинета этот файл доступен только после авторизации
Авторизацию я прохожу, используя curl, поскольку я получаю контент страницы с этими самыми ссылками (они внутри кабинета лежат), а вот что с ними дальше делать... Их бы тоже как-то через курл пропустить, но только как?
А как это должно выглядеть? - авторизовались курлом на странице http://gastrorag.ru/dealers/cabinet/ - получили контент той же страницы со списком этих ссылок <a href="file.php?id=2121">....</a> - отпарсили этот список - получили список "file.php?id=2121", "file.php?id=2122", "file.php?id=2123" А дальше как? Авторизовываться для каждой ссылки на http://gastrorag.ru/dealers/cabinet/file.php (т.е. слать авторизацию в этот файл) и потом типа PHP: curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSLVERSION,3); $data = curl_exec ($ch); где $url - это http://gastrorag.ru/dealers/cabinet/file.php?id=2121 и т.д.
Выглядеть это должно так: PHP: $url=$config[0]['url'].$fl[0]."?id=$id[1]"; // echo("<br>url=$url<br>"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSLVERSION,3); //сохранение кук curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_COOKIEJAR,"$home/cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, "$home/cookie.txt"); curl_setopt($ch, CURLOPT_HEADER, FALSE); // прописывание броузера curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)'); $data = curl_exec ($ch); curl_close ($ch); file_put_contents("$home/files/gastrorag_$name", $data); Т.е. кроме этих ссылок, надо было куки установить и броузер. Спасибо, mkramer! Натолкнул на мысль.