一、登錄並獲取Cookie
使用php curl get功能登錄其它網站時,需要先獲取登錄後的Cookie,並在後續的請求中加入該Cookie,以保持會話。
下面給出一個示例,假設需要登錄到某網站http://www.example.com,其用戶名為user,密碼為password:
$url = "http://www.example.com/login.php"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie.txt'); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array('username' => 'user', 'password' => 'password'))); $login_result = curl_exec($curl); curl_close($curl);
在上面的示例中,使用curl_setopt設置了CURLOPT_COOKIEJAR參數為cookie.txt,表示將獲取到的Cookie保存在文件cookie.txt中。
在後續的請求中,只需要將獲取到的Cookie加入到請求中即可:
$url = "http://www.example.com/secure_page.php"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookie.txt'); $page_content = curl_exec($curl); curl_close($curl);
在上面的示例中,使用curl_setopt設置了CURLOPT_COOKIEFILE參數為cookie.txt,表示從文件cookie.txt中讀取Cookie,並加入到該請求中。
二、設置超時時間
在使用php curl get功能時,為了避免請求超時,可以設置超時時間。
下面給出一個示例,設置超時時間為10秒:
$url = "http://www.example.com/index.php"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 10); $page_content = curl_exec($curl); curl_close($curl);
在上面的示例中,使用curl_setopt設置了CURLOPT_TIMEOUT參數為10,表示設置10秒的超時時間。
三、設置代理伺服器
在使用php curl get功能時,可以設置代理伺服器,方便訪問需要代理的網站。
下面給出一個示例,使用代理伺服器進行訪問:
$url = "http://www.example.com/index.php"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_PROXY, 'http://192.168.1.1:8080'); $page_content = curl_exec($curl); curl_close($curl);
在上面的示例中,使用curl_setopt設置了CURLOPT_PROXY參數為代理伺服器地址和埠號。
四、設置請求頭
在使用php curl get功能時,可以設置請求頭,模擬瀏覽器的請求方式。
下面給出一個示例:
$url = "http://www.example.com/index.php"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' )); $page_content = curl_exec($curl); curl_close($curl);
在上面的示例中,使用curl_setopt設置了CURLOPT_HTTPHEADER參數為請求頭信息,模擬了Chrome瀏覽器的請求方式。
五、加入SSL支持
在使用php curl get功能訪問https協議的網站時,需要加入SSL支持。
下面給出一個示例:
$url = "https://www.example.com/login.php"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $login_result = curl_exec($curl); curl_close($curl);
在上面的示例中,使用curl_setopt設置了CURLOPT_SSL_VERIFYPEER參數為false,表示不驗證SSL證書。
原創文章,作者:FXRKC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/317259.html