PHP是一種服務器端腳本語言,廣泛應用于網(wǎng)站開發(fā)。在開發(fā)過程中,經(jīng)常需要使用curl傳遞參數(shù)。本文將詳細介紹如何使用PHP curl傳遞參數(shù),以及如何進行相關(guān)設(shè)置。
curl可以模擬HTTP請求,通過在命令行中輸入curl命令,可以獲取網(wǎng)絡(luò)上的遠程文件。在PHP中使用curl傳遞參數(shù),需要使用curl_init()函數(shù)初始化一個curl會話,并且設(shè)置需要傳遞的參數(shù)。下面是一個簡單的例子,使用curl獲取百度首頁的HTML代碼。
//初始化curl會話 $curl = curl_init(); //設(shè)置要請求的URL curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com/'); //設(shè)置返回結(jié)果不直接輸出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //執(zhí)行curl請求 $result = curl_exec($curl); //輸出結(jié)果 echo $result; //關(guān)閉curl會話 curl_close($curl);在以上代碼中,使用curl_init()函數(shù)初始化了一個curl會話,并且設(shè)置需要請求的URL。使用curl_setopt()函數(shù)設(shè)置一些選項,例如CURLOPT_RETURNTRANSFER表示返回結(jié)果不直接輸出,而是保存在變量$result中。最后使用curl_exec()函數(shù)執(zhí)行curl請求,將HTML代碼保存在$result變量中,然后輸出。最后使用curl_close()函數(shù)關(guān)閉curl會話。 如果需要在curl請求中傳遞參數(shù),可以使用curl_setopt()函數(shù)設(shè)置CURLOPT_POSTFIELDS選項。例如以下代碼將username和password兩個參數(shù)傳遞到遠程URL請求中。
//初始化curl會話 $curl = curl_init(); //設(shè)置要請求的URL curl_setopt($curl, CURLOPT_URL, 'http://www.example.com/login.php'); //設(shè)置POST請求和要傳遞的參數(shù) curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, 'username=test&password=password1'); //設(shè)置返回結(jié)果不直接輸出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //執(zhí)行curl請求 $result = curl_exec($curl); //輸出結(jié)果 echo $result; //關(guān)閉curl會話 curl_close($curl);在以上代碼中,使用curl_setopt()函數(shù)設(shè)置CURLOPT_POST選項,表示發(fā)送POST請求,然后使用CURLOPT_POSTFIELDS選項傳遞username和password兩個參數(shù)。注意,參數(shù)需要使用字符串形式傳遞,使用&符號分隔多個參數(shù)。最后再使用curl_exec()函數(shù)執(zhí)行curl請求,獲取遠程服務返回的結(jié)果。 另外,還可以使用curl_setopt()函數(shù)設(shè)置CURLOPT_HTTPHEADER選項,傳遞HTTP請求頭。例如以下代碼設(shè)置了User-Agent和Content-Type兩個請求頭。
//初始化curl會話 $curl = curl_init(); //設(shè)置要請求的URL curl_setopt($curl, CURLOPT_URL, 'http://www.example.com/upload.php'); //設(shè)置POST請求和要傳遞的參數(shù) curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, 'username=test&password=password1'); //設(shè)置HTTP請求頭 curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0', 'Content-Type: application/x-www-form-urlencoded', )); //設(shè)置返回結(jié)果不直接輸出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //執(zhí)行curl請求 $result = curl_exec($curl); //輸出結(jié)果 echo $result; //關(guān)閉curl會話 curl_close($curl);在以上代碼中,使用curl_setopt()函數(shù)設(shè)置CURLOPT_HTTPHEADER選項,傳遞User-Agent和Content-Type兩個請求頭。注意,請求頭需要使用數(shù)組形式傳遞,其中每個元素都表示一個請求頭。因此,User-Agent和Content-Type兩個請求頭需要分別傳遞。 綜上所述,使用PHP curl傳遞參數(shù)是非常簡單的。只需要使用curl_init()函數(shù)初始化一個curl會話,并且使用curl_setopt()函數(shù)設(shè)置需要的選項,即可發(fā)送HTTP請求并且傳遞參數(shù)。同時,需要注意設(shè)置一些必要的HTTP頭,例如Content-Type和User-Agent,確保請求能夠正確發(fā)送并且接收到正確的響應。
下一篇php curl 介紹