使用PHP

时间:2018-09-02 07:16:32

标签: javascript php cookies

我正在尝试向包含设置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天,但失败了。

任何帮助将不胜感激。

谢谢!

0 个答案:

没有答案