在 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 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