La fonction curl de PHP fournit de nombreuses fonctions, qui doivent être combinées ensemble dans des étapes spécifiques. Comprenons d'abord les étapes de base de la configuration d'une requête curl en PHP.
$ch = curl_init(); // 创建一个新的CURL资源赋给变量$ch curl_setopt($ch, CURLOPT_URL, $url); // 设置URL $response = curl_exec($ch); // 执行,获取URL并输出到浏览器 curl_close($ch); // 释放资源
Si nous voulons obtenir le contenu mais pas le sortir, nous pouvons utiliser le paramètre CURLOPT_RETURNTRANSFER et définir sa valeur sur une valeur non nulle ou vraie.
Le code est le suivant :
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
On peut obtenir différents résultats en définissant différents paramètres de la fonction curl_setopt() C'est aussi la puissance de l'extension CURL. Les options de paramètres communes de la fonction curl_setopt() peuvent être trouvées dans la documentation officielle et ne seront pas répertoriées ici.
Voici mes méthodes de requête curl get et post couramment utilisées :
get request :
public function httpGet(string $url = '') { // 记录请求信息的日志 // todo try { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 60); //https 请求 if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); } $response = curl_exec($ch); $errorCode = curl_errno($ch); curl_close($ch); if (!empty($errorCode)) { // 可记录错误码日志 return null; } // 记录返回结果日志 return $response; } catch (\Exception $e) { $errorLog = [ 'msg' => $e->getMessage(), 'trace' => $e->getTraceAsString(), 'data' => [ 'url' => $url, ] ]; // 记录错误日志 return null; } } ```php
POST request :
public function httpPost(string $url = '', array $data = []) { // 记录请求信息的日志 // todo try { $jsonData = json_encode($data); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_TIMEOUT, 60); curl_setopt($curl, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json; charset=utf-8', 'Content-Length:' . strlen($jsonData) ]); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //https 请求 if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } $result = curl_exec($curl); $errorCode = curl_errno($curl); curl_close($curl); if (!empty($errorCode)) { // 可记录错误码日志 return null; } // 记录返回结果日志 return json_decode($result, true); } catch (\Exception $e) { $errorData = [ 'msg' => $e->getMessage(), 'trace' => $e->getTraceAsString(), 'data' => [ 'url' => $url, 'postData' => $data ] ]; // 记录错误日志 return null; } }
Cet article est basé sur Réimprimé, l'adresse d'origine est :
https://tsmliyun.github.io/php/PHP%E7%9A%84CURL%E5%8A%9F%E8%83%BD%E6% 89%A9% E5%B1%95%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95/
Recommandé : Vidéo PHP tutoriel
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!