php的curl是一種用于與服務器進行通信的工具,它可以很方便地實現瀏覽器打開網頁時進行的一些操作,比如發送GET和POST請求、處理Cookie、處理文件上傳等。curl也可以返回對請求的一些基本信息,這些信息可以通過curl_getinfo()函數獲取。本文將介紹curl_getinfo()函數及其常用參數,以及通過具體的例子來說明其用法。
curl_getinfo()函數是php curl庫提供的一個用于獲取curl發送請求時相關信息的函數。它的用法為curl_getinfo($ch),其中$ch是由curl_init()函數返回的curl資源句柄。
在使用curl_getinfo()函數時,需要傳入一個參數來指定需要獲取的信息類型。以下是curl_getinfo()函數常用的參數及其含義:
CURLINFO_EFFECTIVE_URL:最終請求的URL地址
CURLINFO_HTTP_CODE:HTTP狀態碼
CURLINFO_CONTENT_TYPE:返回內容的Content-type類型
CURLINFO_SIZE_DOWNLOAD:下載數據包的大小
CURLINFO_SPEED_DOWNLOAD:下載數據包的速度
下面是一個使用curl_getinfo()函數的例子:
$url = 'http://www.example.com'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $html = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); $final_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); $size_download = curl_getinfo($ch, CURLINFO_SIZE_DOWNLOAD); $speed_download = curl_getinfo($ch, CURLINFO_SPEED_DOWNLOAD); curl_close($ch);在以上代碼中,首先使用curl_init()函數初始化一個curl資源句柄。然后使用curl_setopt()函數設置一些curl請求選項,例如上文中的CURLOPT_RETURNTRANSFER選項,表示將curl請求結果返回給變量,而不是直接輸出到屏幕上。隨后,使用curl_exec()函數完成對URL的請求,并將請求結果存儲到變量$html中。接下來,使用curl_getinfo()函數獲取一些有關這次請求的基本信息,并將它們分別存儲到變量$http_code、$content_type、$final_url、$size_download、$speed_download中。最后,使用curl_close()函數關閉curl資源句柄。 使用以上代碼獲取到的信息可以在實際應用中發揮出很大的作用。例如,我們可以根據$request_status的值來判斷請求的是否成功,根據$content_type的值來判斷所請求到的內容類型,根據$final_url的值來判斷請求到的內容是否被重定向。 在實際使用curl_getinfo()函數的時候,需要特別注意信息的獲取順序。如果在curl_exec()函數調用之前使用curl_getinfo()函數獲取信息,返回結果可能并不如預期。因為在curl_exec()函數被調用之前,curl尚未完成請求,所以相關信息自然還沒有產生。 在使用curl_getinfo()函數時,還需要特別注意服務器的返回數據類型。例如,若服務器返回的是帶有特定編碼格式的XML或JSON數據,我們可以使用其他函數來對返回數據進行處理,例如SimpleXML或json_decode()函數。 總的來說,curl_getinfo()函數可以幫助我們獲取發起請求時的一些基本信息,比如狀態碼,請求結果的大小等等。通過這些信息,我們可以更好地了解網絡請求的狀態,并使我們的應用更加智能和準確。
上一篇php curl 配置
下一篇php curl 數據