封装PHP cUrl库。主要提供post、get方法,支持cookie,session curl = curl_init();$this-setopt(CURLOPT_RETURNTRANSFER, true);$this-setopt(CURLOPT_HEADER, true);$this-setopt(CURLOPT_FOLLOWLOCATION, true);}public function post($url
curl = curl_init(); $this->setopt(CURLOPT_RETURNTRANSFER, true); $this->setopt(CURLOPT_HEADER, true); $this->setopt(CURLOPT_FOLLOWLOCATION, true); } public function post($url, $data, $cookie = '', &$session = false, &$code = false){ $this->setopt(CURLOPT_URL, $url); $this->setopt(CURLOPT_POST, true); $this->setopt(CURLOPT_POSTFIELDS, $data); $this->setopt(CURLOPT_COOKIE, $cookie); $out = $this->exec(); $arr = $this->cutHeadAndBody($out); $code = $this->getStart($arr['head']); $session = $this->getCookie($arr['head']); return $arr['body']; } public function get($url, $cookie = '', &$session = false, &$code = false){ $this->setopt(CURLOPT_URL, $url); $this->setopt(CURLOPT_POST, false); $this->setopt(CURLOPT_COOKIE, $cookie); $out = $this->exec(); $arr = $this->cutHeadAndBody($out); $code = $this->getStart($arr['head']); $session = $this->getCookie($arr['head']); return $arr['body']; } public function setopt($key, $value){ curl_setopt($this->curl, $key, $value); } public function exec(){ return curl_exec($this->curl); } function __destruct(){ curl_close($this->curl); } //分割出返回头和html主体 private function cutHeadAndBody($content){ $arr = explode($this->HTML,$content,2); $newArray = ['head'=>$arr[0],'body'=>$arr[0]]; if(count($arr) > 1) $newArray['body'] = $this->HTML.$arr[1]; return $newArray; } //取出200状态码,除200外其他状态码可能取不出,待优化 private function getStart($head){ $arr = explode("\n", $head); $newCode = false; foreach($arr as $list){ if(preg_match('/^HTTP.*\ ([0-9]*)\ OK/i', $list, $code) > 0){ $newCode = $code[1]; } } return $newCode; } //取出返回的cookie private function getCookie($head){ $cookie = ''; $preg = '/^set\-cookie:([^\r\n]*)/im'; $num = preg_match_all($preg, $head, $out); foreach($out[1] as $list){ $cookie .= $list.';' ; } return $cookie; } }