Не удалось вызвать запрос на основе браузера, используя PHP Curl - PullRequest
0 голосов
/ 21 января 2020

Если мы вызываем тот же URL в браузере, он автоматически загружает файл CSV. Итак, я хочу использовать ту же функцию, используя PHP curl, чтобы сохранить файл CSV в той же папке. Но это дает мне пустой результат каждый раз. Подскажите, пожалуйста, что не так в приведенном ниже коде?

$url="https://www.centrano.com/catalog_download.php?email=info@sporttema.com&password=dHB3L1FpTEg1c2pLZ29SUkdnUWcwWTFqN2RIamQx";

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
$agent= "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36";
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 100000); //time out of 15 seconds
$output = curl_exec($ch); 
print_r($output);
curl_close($ch);

1 Ответ

0 голосов
/ 21 января 2020

Добавьте следующие два параметра CURL, чтобы он работал:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);                                 
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt');   

Страница перенаправляется несколько раз на один и тот же хост и требует, чтобы сессионные куки-файлы оставались в наличии (таким образом, сохраняя их в кулинарии ie jar.

Также: измените пароль учетной записи centrano.com НЕМЕДЛЕННО! Несмотря на то, что это помогло решить эту проблему, вообще не стоит делать это публично c.

...