2017年10月18日-php curl get post請求

来源:http://www.cnblogs.com/i0ject/archive/2017/10/18/7684923.html
-Advertisement-
Play Games

一、CURL小結 個人將歸納curl請求總結成三步 1、創建curl 句柄(curl_init),並設置參數(curl_setopt)(打開冰箱) 2、執行請求(curl_exec),處理返回的數據 (把大象塞進去) 3、關閉curl(curl_close),釋放所有資源(關上冰箱) 其實如果代碼看 ...


   一、CURL小結

         個人將歸納curl請求總結成三步

         1、創建curl 句柄(curl_init),並設置參數(curl_setopt)(打開冰箱)

         2、執行請求(curl_exec),處理返回的數據 (把大象塞進去)

         3、關閉curl(curl_close),釋放所有資源(關上冰箱)

         其實如果代碼看起來比較複雜,複雜的地方可能就是在處理返回數據的邏輯。

二、CURL_SETOPT

        故名思議,SetOption 設置參數,其中囊括的參數較多,這裡只是簡單提取常用的幾個,如需查看更多參數,點擊這裡,常見的設置UA、Cookie、https等

bool curl_setopt          ( resource $ch , int $option , mixed $value )
CURLOPT_USERAGENT         在HTTP請求中包含一個"User-Agent: "頭的字元串。
CURLOPT_REFERER           在HTTP請求頭中"Referer: "的內容。
CURLOPT_TIMEOUT           允許 cURL 函數執行的最長秒數。
CURLOPT_RETURNTRANSFER    TRUE 將curl_exec()獲取的信息以字元串返回,而不是直接輸出。
/*下麵兩個再https請求中才需設置*/ CURLOPT_SSL_VERIFYPEER
FALSE 禁止 cURL 驗證對等證書(peer's certificate)。要驗證的交換證書可以在 CURLOPT_CAINFO 選項中設置,或在 CURLOPT_CAPATH中設置證書目錄。(自cURL 7.10開始預設為 TRUE。從 cURL 7.10開始預設綁定安裝。) CURLOPT_SSL_VERIFYHOST 設置為 1 是檢查伺服器SSL證書中是否存在一個公用名(common name)。譯者註:公用名(Common Name)一般來講就是填寫你將要申請SSL證書的功能變數名稱 (domain)或子功能變數名稱(sub domain)。 設置成 2,會檢查公用名是否存在,並且是否與提供的主機名匹配。 0 為不檢查名稱。 在生產環境中,這個值應該是 2(預設值)。 值 1 的支持在 cURL 7.28.1 中被刪除了。 

       下麵以請求百度為例,需要使用自行設置URL、Ua、Cookie等,https請求中才需要只用的SSL證書校驗,http請求中可不用,如果需要請求有規律的地址,類似example.com/?id=$i,修改for迴圈即可。

<?php

class getRequest
{
    const sUA = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)';
    const sURL = 'https://www.baidu.com';
    const sCookie = 'fake if you want';

    function vInitRequest()
    {
        $curl = curl_init();

        curl_setopt($curl, CURLOPT_HEADER, self::sUA);
        curl_setopt($curl, CURLOPT_COOKIE, self::sCookie);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

        /*
         * ssl check,use for https url
         */
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);

//        for ($iId = 1; $iId < 1000; $iId++) {
//            $sURL = self::sURL.$iId;
        curl_setopt($curl, CURLOPT_URL, self::sURL);
        $this->sExecRequest($curl);
//        }
    }


    function sExecRequest($curl)
    {
        $sRet = curl_exec($curl);
        print_r($sRet);
        /**
         * handle your response
         * stripos or preg
         */
        curl_close($curl);
    }
}

$foo = new getRequest();
$foo->vInitRequest();

?>

 

未完

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 昨日去筆試了,遇到了一道編程題,因為經常坐在電腦前面,使用開發工具已經習慣了“alt+/”,導致了平時有些方法不是很註意看,於是在整理了思路之後,寫方法的時候,完蛋了,卡殼了....導致那道題做得不是盡如人意....現在筆者將之整理出來,希望加深自己的印象的同時也能夠對讀者有所幫助。 題目:從鍵盤中 ...
  • int #數值(整數) str #字元串(文字) float #浮點(小數點) list #列表 print() #列印\輸出 len() #長度 max() #最大值 min() #最小值 del() #刪除元素 list.append(obj) #此語法中list代表列表,obj代表需要添加到l ...
  • PS:再次說明一下,原本不想寫的太啰嗦的,可之前那個系列發佈後發現,好多朋友都想馬上拿到代碼立即能上手開發自己的項目,對代碼結構、基礎常識、分類目錄與文件功能結構、常用函數......等等什麼都不懂,然後就想使用,我真的很無語,還有一些朋友有十幾年開發經驗也會問一些很基礎的問題,我都不知道怎麼回答了 ...
  • 一、簡介 阿裡巴巴於10月14日在杭州雲棲大會上,正式發佈了《阿裡巴巴Java開發規約》掃描插件!該插件基於《阿裡巴巴Java開發規約》手冊內容,在掃描代碼後,將不符合規約的代碼按Blocker/Critical/Major三個等級顯示在下方,甚至在IDEA上,還基於Inspection機制提供了實 ...
  • 簡述 寫這個工具主要目的在於減少工作量,bear在寫gitbook的時候,發現對應目錄一個一個寫進去,非常繁瑣,而且最近在學習python,所以,手癢之下寫了一個目錄生成的小工具。 工具使用 本身工具並不複雜,主要實現功能接受一個github中的raw版本的url,然後列印自動生成對應文件的mark ...
  • 本節內容 - 使用nm查看符號 - 使用readelf -s輸出符號信息 - 刪除符號表對反彙編的影響 - 使用strip刪除符號和調試信息 - 使用UPX壓縮並保護可執行文件 ...
  • spring boot / cloud (十九) 併發消費消息,如何保證入庫的數據是最新的? 消息中間件在解決非同步處理,模塊間解耦和,和高流量場景的削峰,等情況下有著很廣泛的應用 . 本文將跟大家一起討論以下其中的異常場景,如題. 場景 在實際工作中,大家可能也都遇到過這樣的需求 : 如 : 系統A ...
  • /p 問題描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用電腦生成了N個1到1000之間的隨機整數(N≤100),對於其中重覆的數字,只保留一個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...