PHP 是一種常用的語言,有許多處理 HTTP 協(xié)議的函數(shù),其中 CURL 是一個使用廣泛的工具,可用來獲取遠程 URL 并處理其響應(yīng)。而 CURD 是 CRUD 的一個改版,它代表了“創(chuàng)建(Create)讀取(Read)更新(Update)刪除(Delete)”四個操作,CUR 開頭的網(wǎng)絡(luò)請求函數(shù)就是在這個基礎(chǔ)上進行了升級和拓展。
在 PHP 中,使用 CURL 可以發(fā)送各種網(wǎng)絡(luò)請求,CURD 包含了四個常用的網(wǎng)絡(luò)請求方法:CURD GET、CURD POST、CURD PUT 和 CURD DELETE。今天我們重點討論的是 CURD GET,它在獲取數(shù)據(jù)時非常方便。
首先看一下 CURD GET 的語法:
curl_setopt($ch, CURLOPT_URL, $url);//發(fā)送請求到$url,就是訪問這個URL curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//將數(shù)據(jù)以文件流的形式返回 curl_setopt($ch, CURLOPT_TIMEOUT, 1);//設(shè)置超時時間 curl_setopt($ch, CURLOPT_HEADER, 0);//不返回頭部信息 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//不校驗HTTPS證書 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);//不校驗HTTPS證書 $data = curl_exec($ch);//執(zhí)行請求 curl_close($ch);//關(guān)閉請求
在上面的語法中,第一行是表示將向 $url 發(fā)送 CURD GET 請求。此外, CURLOPT_RETURNTRANSFER 參數(shù)表明返回的結(jié)果應(yīng)收集在一個變量中而不是被直接輸出, CURLOPT_TIMEOUT 規(guī)定了超時時間, CURLOPT_HEADER 聲明不希望在結(jié)果中返回頭部信息。CURLOPT_SSL_VERIFYPEER 和 CURLOPT_SSL_VERIFYHOST 的設(shè)定是為了不校驗 HTTPS 證書。
使用 CURD 執(zhí)行 HTTP GET 請求可以從指定 URL 獲取數(shù)據(jù)。因此,請求 URL 是必需的。例如,在獲得 Github API 的公共數(shù)據(jù)時,我們就會使用 CURD GET 方法。下面的 PHP 代碼演示了如何使用 PHP CURL 庫處理 Github API 返回數(shù)據(jù)。
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.github.com/users/octocat/repos"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $output = curl_exec($ch); curl_close($ch); echo $output; ?>
在上述的示例中,我們已經(jīng)成功從 Github API 獲取了數(shù)據(jù),并且使用了 CURLOPT_RETURNTRANSFER 參數(shù)將數(shù)據(jù)集成到一個字符串中。CURD GET 請求返回一個 JSON 格式的數(shù)據(jù),我們可以對它進行編碼和解碼,處理它,然后插入到我們自己的數(shù)據(jù)庫中。
以上就是 CURD GET 的使用方法以及在 PHP 中使用 CURL 庫進行 CURD GET 請求的例子,我們可以根據(jù)這些信息實現(xiàn)自己的 GET 請求。不過需要注意的是,假如使用的 HTTP/HTTPS 協(xié)議的 URL 受到來源限制,則要設(shè)置 referer 頭部字段和 User-Agent 字段。