Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie CURL zum Implementieren von GET- und POST-Anfragen in PHP

So verwenden Sie CURL zum Implementieren von GET- und POST-Anfragen in PHP

零到壹度
零到壹度Original
2018-04-10 17:00:071556Durchsuche

CURL ist ein Tool, das URL-Syntax zum Übertragen von Dateien und Daten verwendet. Es unterstützt viele Protokolle wie HTTP, FTP, TELNET usw. Das Beste daran ist, dass PHP auch die CURL-Bibliothek unterstützt. Verwenden Sie die CURL-Bibliothek von PHP, um Webseiten einfach und effektiv zu crawlen. Sie müssen lediglich ein Skript ausführen und die von Ihnen gecrawlten Webseiten analysieren. Anschließend können Sie die gewünschten Daten programmgesteuert abrufen. Ganz gleich, ob Sie Teildaten aus einem Link abrufen, eine XML-Datei in eine Datenbank importieren oder einfach nur den Inhalt einer Webseite abrufen möchten: CURL ist eine leistungsstarke PHP-Bibliothek.

Grundlegende Schritte zum Einrichten einer CURL-Anfrage in PHP

①: Initialisierung

curl_init()

②: Attribute festlegen

curl_setopt() Es gibt eine lange Liste von CURL-Parametern, die festgelegt werden können und die verschiedene Details der URL-Anfrage angeben können.

③: Ausführen und das Ergebnis erhalten

curl_exec()

④: Den Griff loslassen

curl_close()

CURL Implementieren Sie GET und POST

①: GET-Methode zur Implementierung

   //初始化 
      $curl = curl_init(); 
     //设置抓取的url 
     curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); 
      //设置头文件的信息作为数据流输出 
     curl_setopt($curl, CURLOPT_HEADER, 1); 
      //设置获取的信息以文件流的形式返回,而不是直接输出。 
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
      //执行命令
      $data = curl_exec($curl);
      //关闭URL请求
      curl_close($curl);
      //显示获得的数据
      print_r($data);

②: POST-Methode zur Implementierung

  //初始化 
      $curl = curl_init(); 
      //设置抓取的url 
      curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); 
      //设置头文件的信息作为数据流输出 
      curl_setopt($curl, CURLOPT_HEADER, 1); 
      //设置获取的信息以文件流的形式返回,而不是直接输出。 
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
      //设置post方式提交
      curl_setopt($curl, CURLOPT_POST, 1);
      //设置post数据
       $post_data = array(
          "username" => "coder",
          "password" => "12345"
          );
      curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
      //执行命令
      $data = curl_exec($curl);
      //关闭URL请求
      curl_close($curl);
      //显示获得的数据
      print_r($data);

③:如果获得的数据时json格式的,使用json_decode函数解释成数组。

$output_array = json_decode($data,true); //如果第二个参数为true,就转为数组的形式。如果不填就为对象的形式

如果使用json_decode($data)解析的话,将会得到object类型的数据。

我自己封装的一个函数

  //参数1:访问的URL,参数
 :post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies 2  function curl_request($url,$post='',$cookie='', $returnCookie=0){ 
          $curl = curl_init(); 
          curl_setopt($curl, CURLOPT_URL, $url); 
          curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); 
         curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
          curl_setopt($curl, CURLOPT_AUTOREFERER, 1); 
          curl_setopt($curl, CURLOPT_REFERER, "http://XXX"); 
          if($post) {
             curl_setopt($curl, CURLOPT_POST, 1);
              curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
          }
          if($cookie) {
              curl_setopt($curl, CURLOPT_COOKIE, $cookie);
          }
          curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
          curl_setopt($curl, CURLOPT_TIMEOUT, 10);
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
          $data = curl_exec($curl);
          if (curl_errno($curl)) {
              return curl_error($curl);
          }
          curl_close($curl);
          if($returnCookie){
              list($header, $body) = explode("\r\n\r\n", $data, 2);
              preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
              $info['cookie']  = substr($matches[1][0], 1);
              $info['content'] = $body;
              return $info;
          }else{
              return $data;
          }
  }

这俩个函数虽然不难,但是还是值得学习一下的。因为在做接口或者调用的接口的时候,必定会用到这俩个函数。

Das obige ist der detaillierte Inhalt vonSo verwenden Sie CURL zum Implementieren von GET- und POST-Anfragen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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