Нужно получить данные с tyty отправляю заголовки
$date_start = date(d.m.Y);
$preg_date = "+$i days";
$date_end = date(d.m.Y, strtotime($preg_date));
$url = "https://avia.tutu.ru/ajax/?Action=avia_offer&act=get_offers&force=0&passengers=100&class=Y&changes=all&route%5B%5D=491-".$date_end."-75";
//получаем заголовки для отправки на сервер
$preg_headers = get_headers($url);
//обнуляем перевемнную в которой .eltv хранить куки
$get_headers_cookies = NULL;
//обходим мссив с заголовками и вытаскиваем оттуда куки.
for ($h = 0; $h < count($preg_headers); $h++)
{
$sess = strpos($preg_headers[$h], "Set-Cookie:");
if ($sess !== FALSE) {
$get_headers_cookies = $get_headers_cookies.";".$preg_headers[$h];
};
};
//вырезаем ненужные символы из куки и готовим их к отправке на сервер.
$get_headers_cookies = substr(str_replace(";Set-Cookie: ", ";", $get_headers_cookies), 1);
$get_headers_cookies = preg_replace("/ ..:..:.. GMT/", "", $get_headers_cookies);
$get_headers_cookies = str_replace(" ", "", $get_headers_cookies);
$headers_cookies = 'Cookie: '.$get_headers_cookies;
//инициализируем cUrl запрос на сервер в нём передаём все данные заголовки и куки.
for ($a = 0; $a < 2; $a++){
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_COOKIESESSION, true);
curl_setopt($handle, CURLOPT_AUTOREFERER, true);
curl_setopt($handle, CURLOPT_HEADER, 0);
curl_setopt($handle, CURLOPT_HTTPHEADER, array("Host: avia.tutu.ru",'Connection: keep-alive','Accept: application/json, text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','X-Requested-With: XMLHttpRequest','Referer: '.$url.'','Accept-Encoding: deflate, br','Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',$headers_cookies));
$html_code = curl_exec($handle);
print_r($html_code);
//проверяем на ошибки cUrl
if ($html_code === FALSE){
echo "cURL Error: " . curl_error($handle);
return;
};
//закрываем cUrl
curl_close($handle);
$response = json_decode($html_code , true);
}
};
но в ответе приходит
{"searchHash":"899729004082155873","searchStatus":"requested"}
если поставить куки руками
$date_start = date(d.m.Y);
$preg_date = "+$i days";
$date_end = date(d.m.Y, strtotime($preg_date));
$url = "https://avia.tutu.ru/ajax/?Action=avia_offer&act=get_offers&force=0&passengers=100&class=Y&changes=all&route%5B%5D=491-".$date_end."-75";
//получаем заголовки для отправки на сервер
$preg_headers = get_headers($url);
//обнуляем перевемнную в которой .eltv хранить куки
$get_headers_cookies = NULL;
//обходим мссив с заголовками и вытаскиваем оттуда куки.
for ($h = 0; $h < count($preg_headers); $h++)
{
$sess = strpos($preg_headers[$h], "Set-Cookie:");
if ($sess !== FALSE) {
$get_headers_cookies = $get_headers_cookies.";".$preg_headers[$h];
};
};
//вырезаем ненужные символы из куки и готовим их к отправке на сервер.
$get_headers_cookies = substr(str_replace(";Set-Cookie: ", ";", $get_headers_cookies), 1);
$get_headers_cookies = preg_replace("/ ..:..:.. GMT/", "", $get_headers_cookies);
$get_headers_cookies = str_replace(" ", "", $get_headers_cookies);
$headers_cookies = 'Cookie: '.$get_headers_cookies;
//инициализируем cUrl запрос на сервер в нём передаём все данные заголовки и куки.
for ($a = 0; $a < 2; $a++){
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_COOKIESESSION, true);
curl_setopt($handle, CURLOPT_AUTOREFERER, true);
curl_setopt($handle, CURLOPT_HEADER, 0);
curl_setopt($handle, CURLOPT_HTTPHEADER, array("Host: avia.tutu.ru",'Connection: keep-alive','Accept: application/json, text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','X-Requested-With: XMLHttpRequest','Referer: '.$url.'','Accept-Encoding: deflate, br','Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7','Cookie: SESSIONID=dc150218-34f1-4d80-9324-2ca878760cb1;expires=Sun,13-Feb-2028;Max-Age=315360000;path=/;domain=.tutu.ru;servercookie3_session_secured=17b4f1b8e9000e5d127430943f45202c;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru;secure;HttpOnly;servercookie3_session=b0534facfeeb7977affaf90ddf138b51;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru;HttpOnly;servercookie3__cross_domain=a2a72ae3ce7fb234597b665101a69821;expires=Mon,14-Feb-2022;Max-Age=126144000;path=/;domain=.tutu.ru;HttpOnly;servercookie3__cross_domain_secured=09f89c96761b93372bb9ad7c4313ca3b;expires=Mon,14-Feb-2022;Max-Age=126144000;path=/;domain=.tutu.ru;secure;HttpOnly;avia_form_from_city_id=491;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru;avia_form_from_city_name=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru;avia_form_to_city_id=75;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru;avia_form_to_city_name=%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru;avia_form_date_forward=2018-02-15;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru;avia_form_date_back=deleted;expires=Thu,01-Jan-1970;Max-Age=0;path=/;domain=.tutu.ru;avia_form_fulls=1;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru;avia_form_children=0;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru;avia_form_infants=0;expires=Fri,16-Feb-2018;Max-Age=86400;path=/;domain=.tutu.ru'));
$html_code = curl_exec($handle);
print_r($html_code);
//проверяем на ошибки cUrl
if ($html_code === FALSE){
echo "cURL Error: " . curl_error($handle);
return;
};
//закрываем cUrl
curl_close($handle);
$response = json_decode($html_code , true);
}
};
то после ВТОРОЙ перезагрузке страницы получаем то что нужно.
{"searchHash":"480970059559943185","searchStatus":"completed","timelimit":1597,"carriers_list":{"1062":{"logo":"https:\/\/cdn2.tu-tu.ru\/image\/avia_offers_carriers\/1\/d8f07dde21c2ae888898c526c9b05572\/","logo_small":"https:\/\/cdn2.tu-tu.ru\/ima...
php совсем не знаю сейчас в процессе изучения по этому многое думаю не правильно и ещё больше можно пееделать более оптимально. Помогите с вопросом!
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Господа, у меня серьезный и важный вопрос, над которым я бьюсь головой об клавиатуру уже больше неделиЯ даже готов обсудить вознаграждение...
Сегодня состоялся следующий спор с коллегамиОни утверждали, что в таком коде нет никаких проблем, и все будет работать везде одинаково:
есть абсолютное имя файла QString filePathНадо из программы вызвать открытие этого файла стандартной для системы утилитой
Второй день пытаюсь сделать шифрование Xor'ом, но все никак не получаетсяВот мой код