Я хотел бы выполнить несколько шагов с помощью PHP cURL.Сначала я хотел бы подключить интерфейс, защищенный логином / паролем, а затем я хотел бы отправить форму, чтобы получить файл .csv, сгенерированный данными этой формы.
- Выполнение проверки подлинности cURL
- Выполнение отправки формы с конкретными данными
$curl = curl_init();
$params = array(
'export_filter[typeExport]'=>'lead',
'export_filter[pos]' => '0',
'export_filter[date]'=> '{"start":"2019-09-16","end":"2019-09-23"}',
'export_filter[use_close_date]'=> '0',
'export_filter[_token]'=> 'ANf-0IKcfi5nAgJWaGyZdl9axeU8OCxjNSrMyFHyf4'
);
$param = http_build_query($params);
curl_setopt_array($curl, array(
CURLOPT_URL => "https://myfakedomain.net/export/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $param,
CURLOPT_HTTPHEADER => array(
"accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"accept-encoding: gzip, deflate, br",
"accept-language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7",
"authority: myfakedomaine.net",
"cache-control: max-age=0,no-cache",
"content-type: application/x-www-form-urlencoded",
"cookie: device_view=full; _ga=GAxxxxx; _gid=GAxxxxx; _gat=1; PHPSESSID=8bf2766d18ddxxxxxxxxxab7927b6b",
"origin: https://myfakedomain.net",
"referer: https://myfakedomain.net/export/",
"sec-fetch-mode: navigate",
"sec-fetch-site: same-origin",
"sec-fetch-user: ?1",
"upgrade-insecure-requests: 1",
"user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Получить динамический файл .csv, сгенерированный этой формой, и загрузить в браузер (на той же странице формы)
Возможно ли это сделать?С чего мне начать ?Спасибо