Heim  >  Artikel  >  Backend-Entwicklung  >  Anwendungsbeispielanalyse der von PHP implementierten Curl-Kapselungsklasse Curl.class.php

Anwendungsbeispielanalyse der von PHP implementierten Curl-Kapselungsklasse Curl.class.php

高洛峰
高洛峰Original
2016-12-23 15:26:221472Durchsuche

Das Beispiel in diesem Artikel beschreibt die Verwendung der in PHP implementierten Curl-Kapselungsklasse Curl.class.php. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

<?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;
 }
}
?>

GET-Nutzung:

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

POST-Nutzung:

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

Ich hoffe, dass dieser Artikel für die PHP-Programmierung aller hilfreich sein wird Design.

Weitere verwandte Artikel zur Anwendungsbeispielanalyse der von PHP implementierten Curl-Kapselungsklasse Curl.class.php finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn