我正在尝试向包含设置cookie的HTML代码的网页发出PHP cURL请求。
然后我也想获取这个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
-它应该使用JavaScript代码设置Cookie。
我目前可以使用以下方法获取此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天,但失败了。
任何帮助将不胜感激。
谢谢!