PHP是一種非常流行的編程語言,它的強大之處在于可以通過各種擴展實現各種功能,其中包括curl擴展,可以模擬HTTP請求獲取遠程資源。在實際開發中,常常需要獲取頭部信息,如獲取cookie,content-type等,我們可以通過curl獲取這些信息。
使用curl獲取頭部信息非常簡單,只需要使用CURLOPT_HEADER選項即可,該選項的作用是將頭部信息包含在輸出結果中。下面是一個示例:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); $output = curl_exec($ch); curl_close($ch);
在上面的代碼中,我們通過curl_init()函數初始化一個curl句柄$ch,在curl_setopt()函數中設置了URL、返回結果和輸出頭部信息的選項,最后通過curl_exec()函數執行請求并返回結果。如果想要獲取頭部信息,可以將CURLOPT_HEADER選項設置為true,否則默認不獲取頭部信息。
獲取到的頭部信息通常是一個字符串,需要進行處理才能獲取到我們需要的信息。例如,獲取cookie信息:
preg_match('/^Set-Cookie:\s*([^;]*)/mi', $output, $matches); $cookie = $matches[1];
上面的代碼使用正則表達式從頭部信息中匹配出cookie信息并將其賦值給$cookie變量。類似地,可以獲取content-type等其他信息。
值得注意的是,雖然CURLOPT_HEADER選項可以將頭部信息包含在輸出結果中,但是默認情況下輸出結果會包含響應體,即獲取到的HTML代碼等,如果只需要頭部信息,需要加以區分。例如:
$output = substr($output, 0, strpos($output, "\r\n\r\n"));
上面的代碼使用substr函數截取了頭部信息,去掉了響應體部分,只保留頭部信息。
總之,通過curl獲取頭部信息是PHP中非常常用的操作之一,可以實現很多有用的功能,可以大大方便我們的開發工作。
上一篇css3 動畫 簡介