Maison  >  Article  >  développement back-end  >  PHP utilise CURL pour implémenter des exemples d'étapes de requête GET et POST

PHP utilise CURL pour implémenter des exemples d'étapes de requête GET et POST

韦小宝
韦小宝original
2018-02-24 09:43:092837parcourir

CURL est un outil qui utilise la syntaxe URL pour transférer des fichiers et des données. Il prend en charge de nombreux protocoles, tels que HTTP, FTP, TELNET, etc. La meilleure partie est que PHP prend également en charge la bibliothèque CURL. Utilisez la bibliothèque CURL de PHP pour gratter facilement et efficacement les pages Web. Il vous suffit d'exécuter un script et d'analyser les pages Web que vous avez explorées, puis vous pourrez obtenir les données souhaitées par programme. Que vous souhaitiez récupérer des données partielles d'un lien, prendre un fichier XML et l'importer dans une base de données, ou même simplement récupérer le contenu d'une page Web, CURL est une puissante bibliothèque PHP.

Étapes de base pour établir une requête CURL en PHP

① : Initialisation

curl_init()

② : Définition des propriétés

curl_setopt() //有一长串CURL 参数可供设置,它们能指定URL请求的各个细节。

③ : Exécuter et obtenir le résultat

curl_exec()

④ : Relâcher la poignée

curl_close()

CURL Implémenter GET et POST

① : méthode GET à implémenter

//初始化
$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);

② : méthode POST à ​​implémenter

//初始化
$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);

③ : Si les données obtenues sont au format json, utilisez la fonction json_decode pour les interpréter dans un tableau.

$output_array = json_decode($data,true); //Si le deuxième paramètre est vrai, il sera converti sous forme de tableau. S'il n'est pas renseigné, il sera sous la forme d'un objet

Si vous utilisez json_decode($data) pour analyser, vous obtiendrez des données de type objet.

Une fonction encapsulée

 //参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
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;
    }
}

Bien que ces deux fonctions ne soient pas difficiles, elles valent quand même la peine d'être apprises. Parce que ces deux fonctions doivent être utilisées lors de la création d’interfaces ou de l’appel d’interfaces.

Articles connexes recommandés :

Comment explorer les données des produits Tmall et Taobao avec php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn