㈠ php中的curl_exec
PHP中的curl_exec()函數用於執行一個cURL會話。
cURL(Client URL Library)是一個強大的庫,用於在PHP中發送HTTP請求和接收響應。通過cURL,你可以與各種伺服器進行通信,包括HTTP、HTTPS、FTP等協議。cURL庫提供了一組函數,允許你設置請求的各種選項,如URL、HTTP頭部、POST數據等。
curl_exec()函數是cURL庫中的一個關鍵函數,用於實際執行之前通過curl_init()初始化的cURL會話。當你設置好了所有的cURL選項後,調用curl_exec()函數將發送請求並獲取伺服器的響應。該函數會返回從伺服器接收到的響應數據,或者在發生錯誤時返回FALSE。
下面是一個使用curl_exec()函數的簡單示例:
php
<!--?php
// 初始化cURL會話
$ch = curl_init();
// 設置cURL選項
curl_setopt($ch, CURLOPT_URL, "http://example.com"); // 設置請求的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 將響應數據作為字元串返回,而不是直接輸出
// 執行cURL會話並獲取響應數據
$response = curl_exec($ch);
// 檢查是否有錯誤發生
if (curl_errno($ch)) {
$error_message = curl_error($ch);
// 處理錯誤
}
// 關閉cURL會話
curl_close($ch);
// 處理響應數據
if ($response) {
// 在這里處理從伺服器接收到的響應數據
echo $response;
}
?>
在上述示例中,我們首先使用curl_init()函數初始化一個cURL會話,並使用curl_setopt()函數設置了一些選項,如請求的URL和是否將響應數據作為字元串返回。然後,我們調用curl_exec()函數執行cURL會話,並將響應數據存儲在$response變數中。接下來,我們檢查是否有錯誤發生,並處理任何錯誤。最後,我們關閉cURL會話,並處理從伺服器接收到的響應數據。
總結來說,curl_exec()函數是PHP中cURL庫的關鍵函數之一,用於執行cURL會話並獲取伺服器的響應數據。通過正確使用cURL庫和curl_exec()函數,你可以在PHP中發送HTTP請求、處理響應數據,並與各種伺服器進行通信。
㈡ php 一個邏輯連續兩次不同的curl請求,第二次請求失敗問題
剛剛遇到這個問題,我是使用兩次不同請求方法解決的,一次用file_get_contents,一次用curl。至於不能接連使用curl的原因還沒有分析。
㈢ 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編程(視頻)
㈣ php curl的幾種用法
總結一下項目中用到curl的幾種方式 1. php curl的默認調用方法,get方式訪問url $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //設置http頭 curl_setopt($ch, CURLOPT_ENCODING, "gzip" ); //設置為客戶端支持gzip壓縮 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //設置連接等待時間 curl_setopt($ch, CURLOPT_URL, $url ); curl_exec( $ch ); if ($error = curl_error($ch) ) {//出錯處理return -1;}fclose($fp); $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //獲取http返回值 if( $curl_code == 200 ) { //正常訪問url}//異常 2. 設置http header支持curl訪問lighttpd伺服器Java代碼$header[]= 'Expect:'; $header[]= 'Expect:'; 3. 設置curl,只獲取http header,不獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); 或者只獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); 4. 訪問虛擬主機,需設置Host $header[]= 'Host: '.$host; 5. 使用post, put, delete等REStful方式訪問urlpost:curl_setopt($ch, CURLOPT_POST, 1 ); put, delete: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); //或者PUT,需要伺服器支持這些方法。6. 保存下載內容為文件
㈤ 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請求數據即可。