Я пытаюсь сделать запрос 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 дней, но мне не удалось.
Буду признателен за любую помощь.
Спасибо!