Получить файлы cookie, установленные кодом JavaScript, используя PHP - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь сделать запрос PHP cURL к веб-странице, содержащей HTML-код, который устанавливает cookie.

Я хочу получить этот файл cookie (тоже с использованием PHP)

Мой текущий код запроса cURL (с пояснительными комментариями)

// Create cURL request with the required data.
$ch = curl_init('http://example.com');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'Cookie: _ga=GA1.2.1813252164.1533305377; __test=29eed463641411464ada487a670d2be2',
    'Accept-Language: en-US,en;q=0.9,ar;q=0.8,de;q=0.7',
    'Host: example.com',
    'Pragma: '
));
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "https://google.com");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36");

// Execute the cURL request and save the result into a string.
$result = curl_exec($ch);

Итак, давайте предположим, что наш сайт http://example.com - он должен установить cookie, используя код JavaScript.

Сейчас я могу получить этот файл cookie, используя этот метод:

echo $result; // Echo the cURL request result (which is a JavaScript code)
// Now, the above echo should set the cookie because it is in the JavaScript code
echo "The cookie is: ".$_COOKIE['MyCookieName'];

РЕДАКТИРОВАТЬ : Я только что заметил, что я должен обновить страницу, чтобы я мог повторить $_COOKIE['MyCookieName']: /

Итак, это работает! Но он работает только с браузерами, когда я пытаюсь создать службу API.

Как: я хочу, чтобы мой скрипт работал на другом скрипте PHP, например:

file_get_contents("http://example.com/MyPHPscript.php");

Но в результате получается только The cookie is: (пусто, потому что file_get_contents не может выполнять коды JavaScript).

Я пытаюсь решить эту проблему в течение 2 дней, но мне не удалось.

Буду признателен за любую помощь.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...