PHP のcurl 関数には、特定の手順で組み合わせる必要がある多くの関数が用意されています。まず、PHP でのcurl リクエストを設定する基本的な手順を理解しましょう。
$ch = curl_init(); // 创建一个新的CURL资源赋给变量$ch curl_setopt($ch, CURLOPT_URL, $url); // 设置URL $response = curl_exec($ch); // 执行,获取URL并输出到浏览器 curl_close($ch); // 释放资源
コンテンツを取得するが出力はしたくない場合は、CURLOPT_RETURTRANSFER パラメーターを使用して、その値を 0 以外の値または true の値に設定できます。
コードは次のとおりです:
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
関数curl_setopt()のさまざまなパラメータを設定することで、さまざまな結果を取得できます。これは、CURL拡張機能の機能でもあります。 curl_setopt() 関数の共通パラメータ オプションは公式ドキュメントに記載されているため、ここではリストされません。
私がよく使用するカールの取得および投稿リクエストのメソッドは次のとおりです:
取得リクエスト:
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 リクエスト:
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; } }
この記事これは再版の一部であり、元のアドレスは次のとおりです:
https://tsmliyun.github.io/php/PHP の CURL 関数拡張機能の基本的な使用法/
推奨: PHP ビデオ チュートリアル
以上がPHPにおけるcurl関数拡張の基本的な使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。