PHP中使用CURL實現GET和POST請求(詳細)
一、什麼是CURL?
cURL 是一個利用URL語法規定來傳輸檔案和資料的工具,支援很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支援 cURL 庫。使用PHP的cURL庫可以簡單和有效地去抓網頁。你只需要執行一個指令碼,然後分析一下你所抓取的網頁,然後就可以以程式的方式得到你想要的資料了。無論是你想從從一個連結上取部分資料,或是取一個XML檔案並把其匯入資料庫,那怕就是簡單的獲取網頁內容,cURL 是一個功能強大的PHP庫。
二、CURL函式庫。
curl_close — 關閉一個curl會話
curl_copy_handle — 拷貝一個curl連線資源的所有內容和引數
curl_errno — 返回一個包含當前會話錯誤資訊的數字編號
curl_error — 返回一個包含當前會話錯誤資訊的字串
curl_exec — 執行一個curl會話
curl_getinfo — 獲取一個curl連線資源控制代碼的資訊
curl_init — 初始化一個curl會話
curl_multi_add_handle — 向curl批處理會話中新增單獨的curl控制代碼資源
curl_multi_close — 關閉一個批處理控制代碼資源
curl_multi_exec — 解析一個curl批處理控制代碼
curl_multi_getcontent — 返回獲取的輸出的文字流
curl_multi_info_read — 獲取當前解析的curl的相關傳輸資訊
curl_multi_init — 初始化一個curl批處理控制代碼資源
curl_multi_remove_handle — 移除curl批處理控制代碼資源中的某個控制代碼資源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be “selected”
curl_setopt_array — 以陣列的形式為一個curl設定會話引數
curl_setopt — 為一個curl設定會話引數
curl_version — 獲取curl相關的版本資訊
curl_init()函式的作用初始化一個curl會話,curl_init()函式唯一的一個引數是可選的,表示一個url地址。
curl_exec()函式的作用是執行一個curl會話,唯一的引數是curl_init()函式返回的控制代碼。
curl_close()函式的作用是關閉一個curl會話,唯一的引數是curl_init()函式返回的控制代碼。
三、PHP建立CURL請求的基本步驟
①:初始化
curl_init()
②:設定屬性
curl_setopt().有一長串cURL引數可供設定,它們能指定URL請求的各個細節。
③:執行並獲取結果
curl_exec()
④:釋放控制代碼
curl_close()
四、CURL實現GET和POST
①:GET方式實現
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php //初始化 $curl = curl_init(); //設定抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //設定標頭檔案的資訊作為資料流輸出 curl_setopt($curl, CURLOPT_HEADER, 1); //設定獲取的資訊以檔案流的形式返回,而不是直接輸出。 //執行命令 $data = curl_exec($curl); //關閉URL請求 curl_close($curl); //顯示獲得的資料 print_r($data); ?> |
執行結果:
②:POST方式實現
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php //初始化 $curl = curl_init(); //設定抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //設定標頭檔案的資訊作為資料流輸出 curl_setopt($curl, CURLOPT_HEADER, 1); //設定獲取的資訊以檔案流的形式返回,而不是直接輸出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //設定post方式提交 curl_setopt($curl, CURLOPT_POST, 1); //設定post資料 $post_data = array( "username" => "coder", "password" => "12345" ); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); //執行命令 $data = curl_exec($curl); //關閉URL請求 curl_close($curl); //顯示獲得的資料 print_r($data); ?> |
③:如果獲得的資料時json格式的,使用json_decode函式解釋成陣列。
$output_array = json_decode($output,true);
如果使用json_decode($output)解析的話,將會得到object型別的資料。
五、我自己封裝的一個函式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
//引數1:訪問的URL,引數2:post資料(不填則為GET),引數3:提交的$cookies,引數4:是否返回$cookies function curl_request($url,$post='',$cookie='', $returnCookie=0){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_AUTOREFERER, 1); curl_setopt($curl, CURLOPT_REFERER, "http://XXX"); if($post) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post)); } if($cookie) { curl_setopt($curl, CURLOPT_COOKIE, $cookie); } curl_setopt($curl, CURLOPT_HEADER, $returnCookie); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); if (curl_errno($curl)) { return curl_error($curl); } curl_close($curl); if($returnCookie){ list($header, $body) = explode("\r\n\r\n", $data, 2); preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches); $info['cookie'] = substr($matches[1][0], 1); $info['content'] = $body; return $info; }else{ 相關推薦PHP中使用CURL實現GET和POST請求(詳細)一、什麼是CURL? cURL 是一個利用URL語法規定來傳輸檔案和資料的工具,支援很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支援 cURL 庫。使用PHP的cURL庫可以簡單和有效地去抓網頁。你只需要執行一個指令碼,然後分析一下你所抓取的網頁,然 PHP中使用CURL實現GET和POST請求由於 protocol 對稱加密 即使 匯報 bst 接口 useragent 拷貝 一、什麽是CURL? cURL 是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 庫。使用php的cURL PHP中使用cURL實現Get和Post請求的方法data print str close arr 設置 高級特性 post數據 decode cURL 是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 庫。本文將介紹 cURL 的一些高級特 使用CURL實現GET和POST方式請求CURL請求,支援GET和POST兩種方式,預設為GET方式,如果傳第二個引數則為POST方式請求,設定了超時時間,避免程式卡死。 function getPost($url,$vars = ''){ $ch = curl_init(); PHP-curl實現GET或POST請求PHP-curl實現GET或POST請求 經常用的二個函式,很容易獲取目標網站資料,http或https協議都支援,可根據具體需求附帶表單,cookie。 GET請求: /** * curl模擬get進行 http 或 https url請求(可選cookie) * stri php使用cUrl方法 get、post請求http log lds ray lan init foreach get方法 spa php使用curl方法,請確保已經開啟curl擴展。傳送門:http://www.cnblogs.com/wgq123/p/7450667.html /**Curl請求get方法 *@ 封裝curl的get和post請求else 請求 enc con code urn gpo sta url /** * GET 請求 * @param string $url */ function http_get($url){ $oCurl = curl_init(); if(s 利用Java實現GET和POST請求三個類 Java建立代理連線物件 Java傳送Post請求 Java傳送Get請求 程式碼 Java建立代理連線物件 /** * 1.返回代理物件 * @param proxyIp * @param 使用AsyncHttpClient 實現get和post請求AsyncHttpClient簡介: AsyncHttpClient庫 基於Apache的HttpClient框架,是一個非同步的httpClient, 所有的http請求都在子執行緒中,但是callback執行的執行緒和建立這個callback的執行緒是同一個(也即主執 PHP中使用CURL實現模擬GET和POST請求,親測完美解決//初始化 $curl = curl_init(); //設定抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //設定標頭檔案的資訊作為資料流輸出 curl_setopt($cur CURL實現發送Get和Post請求(PHP)結果 基本 釋放 初始 常用 header 理解 介紹 今天 1.cURL介紹 cURL 是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 庫。本文將介紹 cURL 的一些高級特性,以及 php-get和post請求output class ray 工作日 打印 init print bsp clas 1.get請求 <?php //判斷20130101是否是工作日 //工作日對應結果為 0, 休息日對應結果為 1, 節假日對應的結果為 2; $url=‘http://www C#中Get和Post請求的同步及異步方法iter epo charset result string pty streambuf div httpget 在C#中發起Http請求一般使用HttpWebRequest這個類,下文將使用這個HttpWebRequest對象來對Get和Post的同步及異步請求進行封裝: Http協議中GET和POST請求方法的區別出場 請求參數 底層 情況下 -type 過去 firefox url sym GET和POST是HTTP請求的兩種基本方法,要說它們的區別,接觸過WEB開發的人都能說出一二。 最直觀的區別就是GET把參數包含在URL中,POST通過request body傳遞 Golang中http請求設定cookie和header(包括GET和POST請求)//http請求 func httpHandle(method, urlVal,data string) { client := &http.Client{} var req *http.Request if data == "" { urlArr := strings.Sp ajax中get和post請求ajax中get請求五步走: 第一步:建立Ajax物件var xhr = createXhr(); 第二步:設定回撥函式 xhr.onreadystatechange = function() {} 第三步:初始化Ajax物件 xhr.open(‘get’,url php CURL模擬GET、POST請求。/** * get * @param string $url 請求地址 */ function GetHttp($url){ // 關閉控制代碼 $curl = curl_init(); // 啟動一個CURL會話 curl_setopt($curl, CURLOPT_URL, $url); curl_set C#中Get和Post請求的同步及非同步方法在C#中發起Http請求一般使用HttpWebRequest這個類,下文將使用這個HttpWebRequest物件來對Get和Post的同步及非同步請求進行封裝: 新建HttpRequestHelper類: public static class H C++:C語言實現HTTP的GET和POST請求例程參考 C++:C語言實現HTTP的GET和POST請求C++:C語言實現HTTP的GET和POST請求 閱讀目錄 HTTP請求和IP/TCP 實現GET請求 實現POST請求: 參考: 回到頂部 Node.js中Get和Post請求對於HTTP請求來說,我們通常使用的是Get和Post,除此之外還有put,delete等,而對於get來說,比較lightweight,只是對字串的傳輸,它會被新增到URL地址裡,屬於URL的一部分;而對於Post來說,就顯得重了一些,它的資料以包的形式存在,除了可以 |