iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
自我挑戰組

PHP 沿途的風景系列 第 8

[Day08] [PHP cURL] 怎麼從程式內部 call api?

  • 分享至 

  • xImage
  •  

[PHP cURL] 怎麼從程式內部 call api?

經過 cURL, curl, CURL 到底誰是誰? 概述後,我們知道 PHP 有支援 cURL 方法,PHP 支援 cURL 都寫在 PHP 的文件 Client URL Library。本文將介紹如何使用 PHP cURL function 來完成 Call API

PHP cURL function 基本 call api 方式

用 PHP cURL function call api 之前,要先知道常用的幾個 function 作用:

  • curl_init(): 初始化連線
  • curl_setopt(): 設定傳輸選項
  • curl_exec(): 執行傳輸
  • curl_close(): 關閉連線

我是刻意這麼安排 PHP cURL function 順序,在 PHP 內對一 URL Call API 進行的 基本步驟正好是:

  1. 初始化連線
  2. 設定傳輸選項
  3. 執行傳輸
  4. 關閉連線

PHP cURL function Call API 如下:

<?php
// create a new cURL resource
$ch = curl_init();

// 初始化 cURL 的 URL
curl_setopt($ch, CURLOPT_URL , "https://jsonplaceholder.typicode.com/posts/1");

// true 將傳輸作為 curl_exec() 的 response,return the transfer string 的 return value 返回,而不是直接輸出 (預設是直接輸出)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$data = curl_exec($ch);
curl_close($ch);
var_dump($data);

/* (string)
 * {
 *   "userId": 1,  
 *   "id": 1,
 *   "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
 *   "body": "quia et suscipit\nsuscipit recusa..."
 * }
 */ 

冷知識補充

curl_init(): 初始化連線對應的變數通常會是 $ch,意指 cURL handle

<?php
$ch = curl_init();
var_dump($ch);
// $ch 是一個 object (class CurlHandle)

結語

本文介紹簡易的 PHP cURL function Call API,後續會在介紹常用的 curl_setopt() 應用到的選項 (CURLOPT_XXX)


參考文章

1 cURL, curl, CURL 到底誰是誰?
2 Client URL Library
3 基本步驟
4 cURL handle


上一篇
[Day 07] 使用 curl 打 api 簡例
下一篇
[Day 09] 常用的 curl_setopt() 介紹
系列文
PHP 沿途的風景30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言