curl の cookie の使い方 初心者にとっては頭の痛い問題です。curl には 4 つのパラメータが含まれています。
もちろん、curl には 3 つの Cookie があると明記されていますが、Cookie を含めることができるヘッダー パラメーターはありませんか
curl は非常に使いやすいです。最も重要なことは、curl_setopt の使用法に慣れることです。
curl_setopt ($ch, CURLOPT_COOKIE , $cookie );
ここでの cookie の値は & ではなく; で区切る必要があります。もちろん、urlencode エンコードを使用する必要はありません。エンコードした方がよいでしょう。
$cookie = "a=b;c=d;name=Fang Shiyu";
これを使用する場合、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を分析するために使用されるコードを添付します
<? php function 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; }