前段时间提取了一个工具类,分享给大家:
<?php class httpconnector { private $curl; private $cookie; private $kv; function __construct(){ $this->kv = new SaeKV(); $this->kv->init(); if($data=$this->kv->get("cookie")) $this->cookie=$data; } public function get($url) { $this->curl = curl_init(); curl_setopt($this->curl, CURLOPT_URL, $url); curl_setopt($this->curl, CURLOPT_HEADER, 1); curl_setopt($this->curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($this->curl, CURLOPT_COOKIE, $this->cookie); curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($this->curl); curl_close($this->curl); preg_match_all("/Set-Cookie:(.*?);/", $data, $match, PREG_SET_ORDER); foreach ($match as $r) { if ($this->cookie != '') { $this->cookie = $this->cookie . ';'; } if (isset($r[1])) { $this->cookie .= trim(str_replace(" ", "", $r[1])); } } $this->kv->set("cookie",$this->cookie); return $data; } public function post($url, $params) { $this->curl = curl_init(); curl_setopt($this->curl, CURLOPT_URL, $url); curl_setopt($this->curl, CURLOPT_HEADER, 1); curl_setopt($this->curl, CURLOPT_COOKIE, $this->cookie); curl_setopt($this->curl, CURLOPT_POST, 1); curl_setopt($this->curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($this->curl, CURLOPT_POSTFIELDS, $params); curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($this->curl); curl_close($this->curl); preg_match_all("/Set-Cookie:(.*?);/", $data, $match, PREG_SET_ORDER); foreach ($match as $r) { if ($this->cookie != '') { $this->cookie = $this->cookie . ';'; } if (isset($r[1])) { $this->cookie .= trim(str_replace(" ", "", $r[1])); } } $this->kv->set("cookie",$this->cookie); return $data; } } ?>