A. php 使用 CURL 詳解
使用PHP的CURL擴展進行HTTP請求發送,通常涉及以下步驟:
首先,初始化CURL連接句柄;
接著,設置CURL選項;
然後,執行請求並獲取結果;
最後,釋放CURL連接句柄。
以下是一個使用CURL發送HTTP請求的典型示例代碼片段。
初始化和關閉CURL連接的函數分別是curl_init()和curl_close(),操作較為簡便。
執行CURL請求的函數是curl_exec()。若請求成功,函數返回URL的響應數據;若出現錯誤,則返回FALSE。注意,使用全等號判斷輸出是否為FALSE,以區分返回空串和出錯的情況。
curl_setopt()函數是CURL庫中最重要的函數,可以通過設置CURL選項來自定義HTTP請求。在示例代碼中,使用了以下三個重要選項:
CURLOPT_URL:指定請求的URL;
CURLOPT_RETURNTRANSFER:設置為1,使curl_exec()函數的返回值是URL的返回字元串,而非將返回字元串輸出到標准輸出;
CURLOPTLOPT_HEADER:設置為0,表示不返回HTTP頭部信息。
PHP官方網站(php.net/manual/en/funct...)提供了CURL支持的所有選項列表。
使用curl_getinfo()函數可以獲取CURL請求輸出的相關信息。該函數返回一個關聯數組,包含如網路地址、內容編碼、HTTP狀態碼等數據。
curl_getinfo()函數還有一個可選參數opt,通過設置常量,可以返回指定欄位的信息。例如,設置opt為CURLINFO_TOTAL_TIME,則只返回總傳輸消耗的時間。
使用CURL發送GET請求時,需要拼裝格式正確的URL。PHP提供了http_build_query函數,用於將關聯數組轉換為GET請求字元串。結合CURL發送HTTP請求的一般流程,可以創建一個發送GET請求的函數。
使用CURL發送POST請求時,可以通過設置CURLOPT_POSTFIELDS選項,將POST字元串數據放在請求正文中。同時,設置CURL_POST為true,標識請求為POST請求。在POST請求中,也可以傳輸GET數據,只需在URL中拼裝GET請求數據即可。
B. PHP如何使用cURL設置Get和Post請求
PHP使用cURL設置Get和Post請求的方法:首先初始化【curl_init()】,並設置變數;然後執行並獲取結果【curl_exec()】;最後釋放cURL句柄【curl_close()】。
【相關學習推薦:php圖文教程】
PHP使用cURL設置Get和Post請求的方法:
1.cURL介紹
cURL 是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 庫。本文將介紹 cURL 的一些高級特性,以及在PHP中如何運用它。
2.基本結構
在學習更為復雜的功能之前,先來看一下在PHP中建立cURL請求的基本步驟:
(1)初始化
curl_init()
(2)設置變數
curl_setopt()最為重要,一切玄妙均在此。有一長串cURL參數可供設置,它們能指定URL請求的各個細節。要一次性全部看完並理解可能比較困難,所以今天我們只試一下那些更常用也更有用的選項。
(3)執行並獲取結果
curl_exec()
(4)釋放cURL句柄
curl_close()
3.cURL實現Get和Post
3.1 Get方式實現
代碼如下:
//初始化
$ch = curl_init();
//設置選項,包括URL
curl_setopt($ch, CURLOPT_URL, "https://www.jb51.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//執行並獲取HTML文檔內容
$output = curl_exec($ch);
//釋放curl句柄
curl_close($ch);
//列印獲得的數據
print_r($output);3.2 Post方式實現
代碼如下:
$url = "http://localhost/web_services.php";
$post_data = array ("username" => "bob","key" => "12345");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post數據
curl_setopt($ch, CURLOPT_POST, 1);
// post的變數
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
//列印獲得的數據
print_r($output);以上方式獲取到的數據是json格式的,使用json_decode函數解釋成數組。
$output_array = json_decode($output,true);如果使用json_decode($output)解析的話,將會得到object類型的數據。
相關學習推薦:php編程(視頻)