国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

用PHP封裝一個(gè)強(qiáng)大且通用的cURL方法

這篇具有很好參考價(jià)值的文章主要介紹了用PHP封裝一個(gè)強(qiáng)大且通用的cURL方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

用PHP封裝一個(gè)強(qiáng)大且通用的cURL方法。
用PHP封裝一個(gè)強(qiáng)大且通用的cURL方法。
用PHP封裝一個(gè)強(qiáng)大且通用的cURL方法。
用PHP封裝一個(gè)強(qiáng)大且通用的cURL方法。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-634901.html

/**
 * @function 強(qiáng)大且通用的cURL請(qǐng)求庫(kù)
 * @param    $url            string        路徑       如:https://example.com/a/b?key=val&k=>v
 * @param    $method         string        請(qǐng)求方式   如:get、post、put、delete、patch、options
 * @param    $payload        array|string  荷載       如:['foo' => 'bar', 'upload_file' => new CURLFile(file_path)]或json{"foo":"bar"}
 * @param    $request_header array         請(qǐng)求頭     如:['Content-Type' => 'json', 'Set-Cookie' => 'foo']
 * @param    $time_out       int           超時(shí)秒數(shù)   如:10,(單位:秒)
 * @return   array [bool 請(qǐng)求是否成功, string 錯(cuò)誤內(nèi)容, [int http狀態(tài)碼, array 響應(yīng)頭, string 響應(yīng)主體內(nèi)容]];
 */
function curl($url, $method = 'GET', $payload = [], $request_header = [], $time_out = 10) {
    $curl = curl_init();
    curl_setopt($curl,CURLOPT_URL, $url);

    $method = strtoupper($method);
    if ($method == 'POST') {
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
    } else if ($method == 'PUT') {
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
        curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
    } else if ($method == 'DELETE') {
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
        curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
    } else if ($method == 'PATCH') {
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PATCH');
        curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
    } else if ($method == 'OPTIONS') {
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'OPTIONS');
        curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
    } else if($method == 'HEAD') {
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'HEAD');
    } else {
        curl_setopt($curl, CURLOPT_HTTPGET, true);
    }

    if ((parse_url($url)['scheme'] ?? '') == 'https') {
        //防止對(duì)12306類(lèi)似的使用自家的ssl證書(shū),造成的請(qǐng)求失敗
        //禁止驗(yàn)證對(duì)等證書(shū)
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        //禁止驗(yàn)證主機(jī)證書(shū)
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }

    if ($time_out) {
        curl_setopt($curl, CURLOPT_TIMEOUT, $time_out);
        curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $time_out);
    }

    if ($request_header) {
        //追加請(qǐng)求頭 配置curl內(nèi)容
        curl_setopt($curl, CURLOPT_HTTPHEADER, array_map(function ($key, $value) {return $key . ': ' . $value;}, array_keys($request_header), $request_header));
    }

    curl_setopt($curl, CURLOPT_HEADER, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLINFO_HEADER_OUT, true);
    curl_setopt($curl, CURLOPT_VERBOSE, true);
    $response    = curl_exec($curl);
    $curl_info   = curl_getinfo($curl);
    $body        = substr($response, $curl_info['header_size']);
    $header_str  = trim(substr($response, 0, $curl_info['header_size']));
    $header = [];
    if($header_str) {
        $header_arr  = explode("\r\n", $header_str);
        foreach($header_arr as $every_header) {
            $header_temp = explode(': ', $every_header, 2);
            if(count($header_temp) == 2) {
                $header[$header_temp[0]] = $header_temp[1];
            }
        }
    }
    curl_close($curl);

    if (curl_errno($curl)) {
        return ['status' => false, 'msg'  => curl_error($curl), 'data' => ['http_code' => $curl_info['http_code'], 'body' => '', 'header' => [], 'info' => $curl_info]];
    }
    return ['status' => true, 'msg'  => '', 'data' => ['http_code' => $curl_info['http_code'], 'body' => $body, 'header' => $header, 'info' => $curl_info]];
}

到了這里,關(guān)于用PHP封裝一個(gè)強(qiáng)大且通用的cURL方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java多線程查表(封裝方法 多表通用)

    Java多線程查表(封裝方法 多表通用)

    經(jīng)過(guò)多線程的學(xué)習(xí)和實(shí)踐 總結(jié)了兩種多線程查表方法? 兩種方法都經(jīng)過(guò)我的封裝 某表使用時(shí) server層加上方法sql即可 查詢流程: 1 count全表?xiàng)l數(shù) 2 通過(guò)總條數(shù) 將全表數(shù)據(jù)分為10份 3 開(kāi)辟10個(gè)線程查詢limit語(yǔ)句(線程數(shù)可自定義) 以下方法均以mysql數(shù)據(jù)庫(kù)測(cè)試 其他庫(kù)同理 目錄 一?線

    2024年02月12日
    瀏覽(16)
  • PHP用CURL發(fā)送Content-type為application/json的POST請(qǐng)求方法

    HELLO 各位伙伴,最近一直在做項(xiàng)目,沒(méi)有及時(shí)更新。望請(qǐng)見(jiàn)諒。 今天,給大家講一下php請(qǐng)求第三方接口的時(shí)候遇到的問(wèn)題,大家都知道,在請(qǐng)求第三方接口的時(shí)候,會(huì)要求我們用post還是get來(lái)傳參 一般我們傳參的時(shí)候基本上都是form-data。有一些第三方為了安全或者是編碼格式

    2024年02月10日
    瀏覽(26)
  • PHP 如何設(shè)計(jì)一個(gè)高安全的電商平臺(tái):淘寶/京東商品類(lèi)API封裝接口

    PHP 如何設(shè)計(jì)一個(gè)高安全的電商平臺(tái):淘寶/京東商品類(lèi)API封裝接口

    如何保證API接口安全 接口的安全性主要圍繞Token、Timestamp和Sign三個(gè)機(jī)制展開(kāi)設(shè)計(jì),保證接口的數(shù)據(jù)不會(huì)被篡改和重復(fù)調(diào)用,下面具體來(lái)看: Token授權(quán)機(jī)制 :用戶使用用戶名密碼登錄后服務(wù)器給客戶端返回一個(gè)Token(通常是UUID),并將Token-UserId以鍵值對(duì)的形式存放在緩存服務(wù)

    2024年02月09日
    瀏覽(26)
  • 自己動(dòng)手封裝axios通用方法并上傳至私有npm倉(cāng)庫(kù):詳細(xì)步驟與實(shí)現(xiàn)指南

    自己動(dòng)手封裝axios通用方法并上傳至私有npm倉(cāng)庫(kù):詳細(xì)步驟與實(shí)現(xiàn)指南

    一、構(gòu)建方法 確定工具庫(kù)的需求和功能:在開(kāi)始構(gòu)建工具庫(kù)之前,你需要明確你的工具庫(kù)需要包含哪些方法及工具,以及這些工具或方法應(yīng)該具備哪些功能。這有助于你更好地規(guī)劃你的開(kāi)發(fā)工作。 編寫(xiě)工具代碼:使用你熟悉的前端框架(如React、Vue等)編寫(xiě)工具代碼。確保你

    2024年04月14日
    瀏覽(32)
  • 一個(gè)通用的es聚合查詢方法

    調(diào)整方法如下: getSearchCondition為數(shù)據(jù)庫(kù)中配置的條件: {\\\"query\\\":{\\\"bool\\\":{\\\"must\\\":[{\\\"exists\\\":{\\\"field\\\":\\\"db_type\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_ip\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_port\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_db_name\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_db_table\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_asset_name\\\",\\\"boost\\\":1}

    2024年02月08日
    瀏覽(20)
  • 一個(gè)通用的EXCEL生成下載方法

    Excel是一個(gè)Java開(kāi)發(fā)中必須會(huì)用到的東西,之前博主也發(fā)過(guò)一篇關(guān)于使用Excel的文章,但是最近工作中,發(fā)現(xiàn)了一個(gè)更好的使用方法,所以,就對(duì)之前的博客進(jìn)行總結(jié),然后就有了這篇新的,萬(wàn)能通用的方法說(shuō)明書(shū)了 好了,閑話不多說(shuō),直接上干貨了 控制器代碼如下 上面總結(jié)

    2024年02月10日
    瀏覽(19)
  • x-cmd pkg | curl - 極其強(qiáng)大的網(wǎng)絡(luò)請(qǐng)求處理工具

    x-cmd pkg | curl - 極其強(qiáng)大的網(wǎng)絡(luò)請(qǐng)求處理工具

    curl(Client for URLs)是一款網(wǎng)絡(luò)請(qǐng)求工具。 curl 于 1996 年首次發(fā)布。它最初被命名為 httpget 后更名為curl。 curl 常用于發(fā)送網(wǎng)絡(luò)請(qǐng)求,它支持多種網(wǎng)絡(luò)協(xié)議。例如:HTTP、HTTPS、FTP等。 使用 x curl 即可自動(dòng)下載并使用 在終端運(yùn)行 eval \\\"$(wget -O- https://get.x-cmd.com)\\\" 即可完成 x 命令安裝

    2024年01月22日
    瀏覽(39)
  • 使用js編寫(xiě)一個(gè)函數(shù)判斷所有數(shù)據(jù)類(lèi)型的通用方法

    一、判斷數(shù)據(jù)類(lèi)型的方法 1、typeof 在 JavaScript 里使用 typeof 來(lái)判斷數(shù)據(jù)類(lèi)型,只能區(qū)分基本類(lèi)型,即 “number”,”string”,”undefined”,”boolean”,”object” 五種。 對(duì)于數(shù)組、對(duì)象來(lái)說(shuō),其關(guān)系錯(cuò)綜復(fù)雜,使用 typeof 都會(huì)統(tǒng)一返回 “object” 字符串。 要想?yún)^(qū)別對(duì)象、數(shù)組單

    2024年02月22日
    瀏覽(24)
  • PHP curl Bad Request

    通過(guò)瀏覽器或postman訪問(wèn)服務(wù)器url,正常返回 通過(guò)curl訪問(wèn)url,返回Bad Request 上網(wǎng)搜索,可能出現(xiàn)的原因:url中包含空格、參數(shù)未使用urlencode轉(zhuǎn)化 經(jīng)過(guò)嘗試,還是不生效。 再次排查,發(fā)現(xiàn)沒(méi)有設(shè)置header時(shí),返回正常。 之前表頭: 進(jìn)一步嘗試,改為: 去掉換行,運(yùn)行正常。 原

    2024年02月09日
    瀏覽(20)
  • php curl apache 超時(shí) 500錯(cuò)誤

    web請(qǐng)求超過(guò)40s 就返回500錯(cuò)誤 php的超時(shí)時(shí)間 set_time_limit無(wú)效 curl CURLOPT_TIMEOUT 設(shè)置請(qǐng)求時(shí)間 無(wú)效 設(shè)置apache Timeout 鏈接超時(shí) 無(wú)效 最后添加 Fcgid才可以 apache 配置文件 httpd.conf

    2024年02月11日
    瀏覽(32)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包