php的curl可以模仿用户浏览网页并且获取网页的cookie,获取cookie还有专用的参数如CURLOPT_COOKIEJAR 用于保存 cookie 到文件了,跟着云测速来看看几个例子吧。
curl可以获取返回页面设置的cookie,原理跟get_headers是一样的,在返回的头信息中将"Set-Cookie:"的内容取出来即可。
测试页面/设置cookie的页面,test.php代码如下:
<?php setcookie('test', 'sssss'); setcookie('xxx', 'www'); //获取cookie的脚本 <?php $url = 'http://localhost/test.php'; $ch = curl_init($url); //初始化 curl_setopt($ch,CURLOPT_HEADER,1); //将头文件的信息作为数据流输出 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //返回获取的输出文本流 curl_setopt($ch, CURLOPT_HEADER, 1); $string = curl_exec($ch); preg_match_all('/Set-Cookie:stest=(.*)/i', $string, $results); var_dump($results); ?>
获取cooke并保存到文件,代码如下:
$url = "https://cloud-ping.com/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); $content = curl_exec($ch); curl_close($ch);