CURL是一個(gè)強(qiáng)大的用于與服務(wù)器進(jìn)行通信的工具,可以通過它來發(fā)送HTTP請求并接收服務(wù)器響應(yīng)。當(dāng)我們需要請求JSON數(shù)據(jù)的時(shí)候,CURL同樣可以勝任。
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://example.com/api/data.json'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); curl_close($curl);
代碼解釋:
- 首先我們先初始化為CURL會話。
- 使用curl_setopt函數(shù)來設(shè)置URL以及返回值。
- 發(fā)送請求并將服務(wù)器響應(yīng)保存在response變量中。
- 關(guān)閉CURL會話,同時(shí)釋放相關(guān)資源。
當(dāng)我們得到響應(yīng)后,如何去解析JSON數(shù)據(jù)呢?PHP提供了json_decode函數(shù),可以將JSON字符串解碼為PHP對象或數(shù)組。
$data = json_decode($response, true);
解碼時(shí),第二個(gè)參數(shù)我們設(shè)置為true,則將JSON數(shù)據(jù)解碼為數(shù)組。如果不設(shè)置第二個(gè)參數(shù)或設(shè)置為false,則將其解碼為對象。
最后,我們可以獲取我們所需要的數(shù)據(jù)。
$name = $data['name']; $age = $data['age'];
從上面的例子可以看出,當(dāng)獲取到JSON數(shù)據(jù)后,將其解碼為數(shù)組或?qū)ο?,然后再從中獲取我們所需要的數(shù)據(jù)。