Home > Backend Development > PHP Tutorial > Usage example analysis of Curl encapsulation class Curl.class.php implemented by PHP

Usage example analysis of Curl encapsulation class Curl.class.php implemented by PHP

高洛峰
Release: 2023-03-04 08:06:01
Original
1492 people have browsed it

The example in this article describes the usage of Curl encapsulation class Curl.class.php implemented in PHP. Share it with everyone for your reference. The details are as follows:

<?php
//curl类
class Curl
{
 function Curl(){
  return true;
 }
 function execute($method, $url, $fields=&#39;&#39;, $userAgent=&#39;&#39;, $httpHeaders=&#39;&#39;, $username=&#39;&#39;, $password=&#39;&#39;){
  $ch = Curl::create();
  if(false === $ch){
   return false;
  }
  if(is_string($url) && strlen($url)){
   $ret = curl_setopt($ch, CURLOPT_URL, $url);
  }else{
   return false;
  }
  //是否显示头部信息
  curl_setopt($ch, CURLOPT_HEADER, false);
  //
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  if($username != &#39;&#39;){
   curl_setopt($ch, CURLOPT_USERPWD, $username . &#39;:&#39; . $password);
  }
  $method = strtolower($method);
  if(&#39;post&#39; == $method){
   curl_setopt($ch, CURLOPT_POST, true);
   if(is_array($fields)){
    $sets = array();
    foreach ($fields AS $key => $val){
     $sets[] = $key . &#39;=&#39; . urlencode($val);
    }
    $fields = implode(&#39;&&#39;,$sets);
   }
   curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
  }else if(&#39;put&#39; == $method){
   curl_setopt($ch, CURLOPT_PUT, true);
  }
  //curl_setopt($ch, CURLOPT_PROGRESS, true);
  //curl_setopt($ch, CURLOPT_VERBOSE, true);
  //curl_setopt($ch, CURLOPT_MUTE, false);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);//设置curl超时秒数
  if(strlen($userAgent)){
   curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
  }
  if(is_array($httpHeaders)){
   curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders);
  }
  $ret = curl_exec($ch);
  if(curl_errno($ch)){
   curl_close($ch);
   return array(curl_error($ch), curl_errno($ch));
  }else{
   curl_close($ch);
   if(!is_string($ret) || !strlen($ret)){
    return false;
   }
   return $ret;
  }
 }
 function post($url, $fields, $userAgent = &#39;&#39;, $httpHeaders = &#39;&#39;, $username = &#39;&#39;, $password = &#39;&#39;){
  $ret = Curl::execute(&#39;POST&#39;, $url, $fields, $userAgent, $httpHeaders, $username, $password);
  if(false === $ret){
   return false;
  }
  if(is_array($ret)){
   return false;
  }
  return $ret;
 }
 function get($url, $userAgent = &#39;&#39;, $httpHeaders = &#39;&#39;, $username = &#39;&#39;, $password = &#39;&#39;){
  $ret = Curl::execute(&#39;GET&#39;, $url, &#39;&#39;, $userAgent, $httpHeaders, $username, $password);
  if(false === $ret){
   return false;
  }
  if(is_array($ret)){
   return false;
  }
  return $ret;
 }
 function create(){
  $ch = null;
  if(!function_exists(&#39;curl_init&#39;)){
   return false;
  }
  $ch = curl_init();
  if(!is_resource($ch)){
   return false;
  }
  return $ch;
 }
}
?>
Copy after login

GET usage:

$curl = new Curl();
$curl->get(&#39;http://www.XXX.com/&#39;);
Copy after login

POST usage:

$curl = new Curl();
$curl->get(&#39;http://www.XXX.com/&#39;, &#39;p=1&time=0&#39;);
Copy after login

I hope this article will be helpful to everyone’s PHP programming design.

For more relevant articles on usage example analysis of the Curl encapsulation class Curl.class.php implemented in PHP, please pay attention to the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template