curl實現get提交數據,代碼如下:
- // 初始化一個 cURL 對象
- $curl = curl_init();
- // 設置你需要抓取的URL
- curl_setopt($curl, CURLOPT_URL, 'http://m.survivalescaperooms.com');
- // 設置header, 最后一個參數是0表示返回值不帶有header,1表示帶有header
- curl_setopt($curl, CURLOPT_HEADER, 0);
- // 設置瀏覽器的特定header,可選,如果目標網站有要求的話
- curl_setopt($ch, CURLOPT_HTTPHEADER, array(
- "User-Agent: {'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)'}",
- "Accept-Language: {en-us,en;q=0.5}"
- ));
- //或者只設置user-agent,可選,如果目標網站有要求的話
- curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
- // 設置cURL 參數,要求結果保存到字符串中還是輸出到屏幕上,1表示保存到字符串
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- // 頁面內容不需要時,設置為1. 默認為0
- curl_setopt($ch, CURLOPT_NOBODY, 1);
- // 運行cURL,請求網頁,保存在$data
- $data = curl_exec($curl);
- // 關閉URL請求
- curl_close($curl);
- //檢查錯誤
- //比較的時候我們用的是“=== FALSE”,而非“== FALSE”,因為我們得區分’空輸出‘和’布爾值FALSE‘
- if ($output === FALSE) {
- echo "cURL Error: " . curl_error($ch);
- }
- //可以獲取信息
- $info = curl_getinfo($ch);
- echo '獲取'. $info['url'] . '耗時'. $info['total_time'] . '秒';
- /* ...返回的數組中包括了以下信息:
- “url” //資源網絡地址
- “content_type” //內容編碼
- “http_code” //HTTP狀態碼
- “header_size” //header的大小
- “request_size” //請求的大小
- “filetime” //文件創建時間
- “ssl_verify_result” //SSL驗證結果
- “redirect_count” //跳轉技術
- “total_time” //總耗時
- “namelookup_time” //DNS查詢耗時
- “connect_time” //等待連接耗時
- “PRetransfer_time” //傳輸前準備耗時
- “size_upload” //上傳數據的大小
- “size_download” //下載數據的大小
- “speed_download” //下載速度
- “speed_upload” //上傳速度
- “download_content_length”//下載內容的長度
- “upload_content_length” //上傳內容的長度
- “starttransfer_time” //開始傳輸的時間
- “redirect_time”//重定向耗時
- */
curl實現POST提交數據,http的post實現,代碼如下:
- //extract data from the post
- extract($_POST) ;
- //set POST variables
- $url = 'http://m.survivalescaperooms.com' ;
- $fields = array(
- 'lname'=>urlencode($last_name) ,
- 'fname'=>urlencode($first_name) ,
- 'title'=>urlencode($title) ,
- 'company'=>urlencode($institution) ,
- 'age'=>urlencode($age) ,
- 'email'=>urlencode($email) ,
- 'phone'=>urlencode($phone)
- );
- //url-ify the data for the POST
- foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&' ; }
- rtrim($fields_string ,'&') ;
- //open connection
- $ch = curl_init() ;
- //set the url, number of POST vars, POST data
- curl_setopt($ch, CURLOPT_URL,$url) ;
- curl_setopt($ch, CURLOPT_POST,count($fields)) ;
- curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string) ;
- //execute post
- $result = curl_exec($ch) ;
- //close connection
- curl_close($ch) ;
新聞熱點
疑難解答