最新消息: 新版网站上线了!!!

php curl简单的类

  1. <?php 
  2.  
  3. /** 
  4. * CurlTest 
  5. */ 
  6.  
  7. class Curl { 
  8. private $_ch
  9.     private $response
  10. private function exec($url
  11.     { 
  12.         $this->setOption(CURLOPT_URL, $url); 
  13.         $this->response = curl_exec($this->_ch); 
  14.         if (!curl_errno($this->_ch)) { 
  15.             $header_size = curl_getinfo($this->_ch, CURLINFO_HEADER_SIZE); 
  16.             $body = substr($this->response, $header_size); 
  17.             return $body
  18.         } else { 
  19.             throw new CException(curl_error($this->_ch)); 
  20.         } 
  21.  
  22.         return false; 
  23.     } 
  24.     public function put($url$data$params = array()) 
  25.     { 
  26.         // write to memory/temp 
  27.         $f = fopen('php://temp''rw+'); 
  28.         fwrite($f$data); 
  29.         rewind($f); 
  30.  
  31.         $this->setOption(CURLOPT_PUT, true); 
  32.         $this->setOption(CURLOPT_INFILE, $f); 
  33.         $this->setOption(CURLOPT_INFILESIZE, strlen($data)); 
  34.          
  35.         return $this->exec($this->buildUrl($url$params)); 
  36.     } 
  37.  
  38. public function setOption($option$value
  39.     { 
  40.         curl_setopt($this->_ch, $option$value); 
  41.  
  42.         return $this
  43.     } 
  44.  
  45. public function buildUrl($url$data = array()) 
  46.     { 
  47.         $parsed = parse_url($url); 
  48.         isset($parsed['query']) ? parse_str($parsed['query'], $parsed['query']) : $parsed['query'] = array(); 
  49.         $params = isset($parsed['query']) ? array_merge($parsed['query'], $data) : $data
  50.         $parsed['query'] = ($params) ? '?' . http_build_query($params) : ''
  51.         if (!isset($parsed['path'])) { 
  52.             $parsed['path']='/'
  53.         } 
  54.  
  55.         $parsed['port'] = isset($parsed['port'])?':'.$parsed['port']:''
  56.  
  57.         return $parsed['scheme'].'://'.$parsed['host'].$parsed['port'].$parsed['path'].$parsed['query']; 
  58.     } 
  59. public function get($url$params = array()) 
  60.     { 
  61.         $this->setOption(CURLOPT_HTTPGET, true); 
  62.  
  63.         return $this->exec($this->buildUrl($url$params)); 
  64.     } 
  65. $c = new Curl(); 
  66.  $res = $c->get("http://www.kuitao8.com"); 
  67.  print_r($res); 

 

转载请注明:谷谷点程序 » php curl简单的类