在 PHP 中從 URL 獲取 JSON 物件

Subodh Poudel 2023年1月30日
  1. 使用 file_get_contents() 函式從 PHP 中的 URL 獲取 JSON 物件
  2. 使用 curl 從 PHP 中的 URL 獲取 JSON 物件
在 PHP 中從 URL 獲取 JSON 物件

本教程介紹如何在 PHP 中從 URL 獲取 JSON 物件。

使用 file_get_contents() 函式從 PHP 中的 URL 獲取 JSON 物件

我們可以使用 file_get_contents()json_decode() 從 URL 中獲取 JSON 物件。file_get_contents() 函式以字串格式讀取檔案。我們應該在函式中指定檔案的路徑,或者我們甚至可以將函式中的 URL 作為第一個引數。我們應該啟用 allow_url_fopen 以使用 file_get_contents() 函式。我們可以通過在 php.ini 檔案中設定 phpini_set("allow_url_fopen", 1) 來啟用它。json_decode() 函式將 JSON 物件轉換為 PHP 物件。因此,我們可以將 JSON URL 中的物件作為 PHP 物件訪問。

為了演示,我們將使用來自 jsonplaceholder 的虛擬 JSON URL。建立一個變數 $url 並將 URL 儲存在其中。使用 URL https://jsonplaceholder.typicode.com/posts/1。URL 的 JSON 物件如下所示。接下來,建立一個 $json 變數並使用 $url 作為 file_get_contents() 函式的引數。現在,使用 json_decode() 函式將 JSON 字串解碼為 PHP 物件。將物件儲存在 $jo 變數中。最後,使用 $jo 訪問 title 物件並將其列印出來。

因此,我們從 Web 訪問了一個包含 JSON 物件的 URL,並將其轉換為 PHP。這樣,我們就可以在 PHP 中從 URL 中獲取 JSON 物件。

示例程式碼:

{
 "userId": 1,
 "id": 1,
 "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
 "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
<?php
$url = 'https://jsonplaceholder.typicode.com/posts/1';
$json = file_get_contents($url);
$jo = json_decode($json);
echo $jo->title;
?>

輸出:

sunt aut facere repellat provident occaecati excepturi optio reprehenderit

使用 curl 從 PHP 中的 URL 獲取 JSON 物件

curl 是一個命令列工具,用於傳送和接收資料和檔案。它使用支援的協議,如 HTTP、HTTPS、FTP 等,並從伺服器或向伺服器傳送資料。在 PHP 中,有一個 curl 庫可以讓我們發出 HTTP 請求。我們可以使用 curl 從網路讀取檔案內容。PHP 中有各種 curl 函式可以方便我們傳送和接收資料。我們可以使用它們從 URL 獲取 JSON 物件。curl_init() 函式啟動 curl。我們可以使用 curl_setopt() 函式來設定幾個選項,例如返回傳輸和設定 URL。curl_exec() 函式執行操作,curl_close() 關閉 curl。

我們可以使用與第一種方法相同的 URL 來演示 curl 的用法。建立一個變數 $curl 並使用 curl_init() 函式啟動 curl。使用 curl_setopt() 函式將 CURLOPT_RETURNTRANSFER 選項設定為 true。接下來,使用 CURLOPT_URL 選項設定 URL。使用 curl_exec() 函式和引數中的 $curl 執行 curl 並將其儲存在 $res 變數中。使用 curl_close() 函式關閉 $curl 變數。接下來,使用 json_decode() 函式將 JSON 物件更改為 PHP 物件並顯示 title 物件。

因此,我們可以使用 curl 從 URL 獲取 JSON 物件。

示例程式碼:

<?php
 $curl= curl_init();
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($curl, CURLOPT_URL, 'https://jsonplaceholder.typicode.com/posts/1';
 $res = curl_exec($curl);
 curl_close($curl);
 $jo = json_decode($res);
 echo $jo->title; ?>

輸出:

sunt aut facere repellat provident occaecati excepturi optio reprehenderit
作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相關文章 - JSON Object