PHP Curl Init使用方法詳解
在PHP開發(fā)中,我們經(jīng)常會(huì)用到curl庫來實(shí)現(xiàn)HTTP操作。curl_init()就是其中一個(gè)非常重要的函數(shù),它可以初始化一個(gè)Curl會(huì)話,方便操作后續(xù)的curl_getinfo(), curl_setopt()等函數(shù)。
接下來我們來看幾個(gè)實(shí)例,來了解curl_init()的具體使用方法。
// 一般使用方法 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.php.net"); curl_exec($ch); curl_close($ch);
上面的代碼是最簡單的curl_init()使用方式,首先我們先初始化一個(gè)curl會(huì)話$ch,然后通過curl_setopt()設(shè)置想要得到的內(nèi)容。最后用curl_exec()訪問目標(biāo)頁面并關(guān)閉會(huì)話。
// 處理302重定向頁面 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_exec($ch); $headerInfo = curl_getinfo($ch); if($headerInfo['http_code'] == 302) { $redirectUrl = $headerInfo['redirect_url']; curl_setopt($ch, CURLOPT_URL, $redirectUrl); curl_setopt($ch, CURLOPT_NOBODY, false); curl_exec($ch); } curl_close($ch);
上面的代碼是處理302重定向時(shí)的curl_init()用法,首先我們還是先調(diào)用curl_init()函數(shù)來初始化一個(gè)Curl會(huì)話$ch,然后設(shè)置CURLOPT_URL,CURLOPT_AUTOREFERER,CURLOPT_FOLLOWLOCATION等參數(shù)。當(dāng)需要進(jìn)行重定向操作時(shí),獲取重定向URL,并設(shè)置CURLOPT_URL和CURLOPT_NOBODY等參數(shù),最后執(zhí)行curl_exec()函數(shù),并在完成后關(guān)閉會(huì)話curl_close()。
// 獲取響應(yīng)體數(shù)據(jù) $url = "https://www.baidu.com"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); echo $output;
上面的代碼是使用curl_init()函數(shù)來獲取響應(yīng)體數(shù)據(jù)的方式。首先我們先定義待訪問的URL,并在curl_init()函數(shù)中傳入?yún)?shù)$url。接下來,我們?cè)O(shè)置CURLOPT_HEADER和CURLOPT_RETURNTRANSFER參數(shù),分別代表不返回響應(yīng)頭和以字符串形式返回請(qǐng)求結(jié)果。最后執(zhí)行curl_exec()函數(shù)并記錄請(qǐng)求結(jié)果,關(guān)閉會(huì)話并輸出結(jié)果。
總結(jié)一下。
curl_init()是curl庫中非常重要的一個(gè)函數(shù),它能初始化curl會(huì)話,幫助我們處理HTTP請(qǐng)求及響應(yīng)體數(shù)據(jù)。在使用過程中,我們還需要根據(jù)實(shí)際的場(chǎng)景設(shè)置一些額外的選項(xiàng),如設(shè)置請(qǐng)求頭,讀取響應(yīng)頭,處理302重定向等等。掌握好curl_init()的使用,對(duì)我們的PHP開發(fā)至關(guān)重要。