curl的cookie怎么使用?新手都很头疼的,curl的参数太多了,其中cookie部分就涉及了4个。
当然了,手册上明白写的curl的cookie是3个,但是嘛,不是还有个header的参数嘛,里面可以包含cookie.
curl非常的好用。最主要的是要熟悉curl_setopt的用法。
curl_setopt ($ch, CURLOPT_COOKIE , $cookie );
这里的cookie值要用;分开的,而不是用&。也不需要用urlencode编码,当然了,编码了就更好。
$cookie = "a=b;c=d;name=方世玉";
注意使用这个的时候,不可在 curl_setopt ($ch, CURLOPT_HTTPHEADER , $header );
的$header里包含Cookie参数,否则会重叠,造成cookie不可预见的情况发生。
<? php$url = "http://www.test.com/zzzz.php";$post_data = array ( "foo" =< "bar", "query" =< "Nettuts", "action" =< "Submit");$cookie_jar_index = 'f:/js/test/cookie.txt';$cookie = "a=b;c=d;name=方世玉";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 我们在POST数据哦!curl_setopt($ch, CURLOPT_POST, 1);// 把post的变量加上curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);curl_setopt($ch, CURLOPT_COOKIE, $cookie);$output = curl_exec($ch);curl_close($ch);echo $output;
附上用来分析IE中cookie的代码
<? phpfunction join_cookie($cook){ foreach( $cook as $k=<$v ) { $d[] =$k."=".$v; }$data = implode(";",$d);return $data;}function pase_cookie($cookFile,$encode=true){$cookie = file_get_contents ( $cookFile );$citem = explode("*/n",$cookie);foreach( $citem as $c ){list($ckey,$cvalue) = explode("/n",$c);if($ckey!='')$cook[$ckey] = $cvalue;}return $cook;}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。
注:相关教程知识阅读请移步到PHP教程频道。