<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        PHP中CURL的幾個經典應用實例_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 21:33:24
        文檔

        PHP中CURL的幾個經典應用實例_javascript技巧

        PHP中CURL的幾個經典應用實例_javascript技巧:1、cURL請求的基本步驟: (1)初始化 (2)設置選項,包括URL (3)執行并獲取HTML文檔內容 (4)釋放cURL句柄 代碼如下: //1、初始化 $ch = curl_init(); //2、設置選項,包括URL curl_setopt($ch, CURLOPT_URL, http:
        推薦度:
        導讀PHP中CURL的幾個經典應用實例_javascript技巧:1、cURL請求的基本步驟: (1)初始化 (2)設置選項,包括URL (3)執行并獲取HTML文檔內容 (4)釋放cURL句柄 代碼如下: //1、初始化 $ch = curl_init(); //2、設置選項,包括URL curl_setopt($ch, CURLOPT_URL, http:

        1、cURL請求的基本步驟:

        (1)初始化
        (2)設置選項,包括URL
        (3)執行并獲取HTML文檔內容
        (4)釋放cURL句柄

        代碼如下:
        <?php
        //1、初始化
        $ch = curl_init();

        //2、設置選項,包括URL
        curl_setopt($ch, CURLOPT_URL, "http://www.cnblogs.com/it-cen/");

        //將curl_exec()獲取的信息以文件流的形式返回,而不是直接輸出
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        //啟動時會將頭文件的信息作為數據流輸出
        curl_setopt($ch, CURLOPT_HEADER, 1);

        //3、執行并獲取HTML文檔內容
        curl_exec($ch);

        //4、釋放句柄
        curl_close($ch);

        echo $ch;

        ?>

        注意:第二步最重要,也就是curl_setopt()函數

        我們可以加一段檢查錯誤的語句,這里要注意用的是"===false",這是為了區分空輸出和布爾值false

        代碼如下:
        $output = curl_exec($ch);

        if ($output === false) {
        echo "cURL Error:".curl_error($ch);
        }

        curl_getinfo()函數返回cURL執行后這一請求相關的信息,這對調試和排錯很有用:

        代碼如下:
        curl_exec($ch);
        $info = curl_getinfo($ch);
        echo '

        ';
        print_r($info);
        echo '
        ';

        返回的數據
        代碼如下:
        Array
        (
        [url] => http://www.cnblogs.com/it-cen/
        [content_type] => text/html; charset=utf-8
        [http_code] => 200
        [header_size] => 312
        [request_size] => 61
        [filetime] => -1
        [ssl_verify_result] => 0
        [redirect_count] => 0
        [total_time] => 0.172
        [namelookup_time] => 0.016
        [connect_time] => 0.063
        [pretransfer_time] => 0.063
        [size_upload] => 0
        [size_download] => 14658      //請求的數據大小
        [speed_download] => 85220    
        [speed_upload] => 0
        [download_content_length] => 14658
        [upload_content_length] => 0
        [starttransfer_time] => 0.125
        [redirect_time] => 0
        [certinfo] => Array
        (
        )

        [redirect_url] =>
        )

        2、這些信息在調試很有用,例如在cURL抓取的時候,可能由于網絡等原因,時常出現抓取數據不完整的情況,這是我們可以通過所獲取的數據計算filesize,然后和curl_getinfo()獲取的進行比較,如果大小相等,就認定下載正確,否則進行重復嘗試。

        下面我們看一個抓取圖片的例子:
        代碼如下:
        <?php
        header("Content-Type: image/png");

        //1、初始化
        $ch = curl_init();

        //2、設置選項,包括URL
        curl_setopt($ch, , CURLOPT_URL, "http://img04.taobaocdn.com/tfscom/TB1omaTHXXXXXajXVXXtKXbFXXX.png");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 1);

        //3、執行并獲取內容
        $res = curl_exec($ch);

        //獲取信息
        $info = curl_getinfo($ch);

        //4、釋放資源
        curl_close($ch);

        file_put_contents("d:/aa.png", $res);

        $size = filesize("d:/aa.png");

        if ($size != $info['size_download']) {
        echo "下載的數據不完整,請重新下載";
        } else {
        echo "下載數據完整";
        }


        ?>

        3、在cURL中用POST方法發送數據

        代碼如下:
        <?php
        $ch = curl_init();

        $data = array('name'=>'kelly', 'age'=>27, 'sex'=>1);

        curl_setopt($ch, CURLOPT_URL, "http://localhost.post.php");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        //設置為post
        curl_setopt($ch, CURLOPT_POST, 1);
        //把post的變量加上
        curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

        $res = curl_exec($ch);

        curl_close($ch);

        echo $res;


        ?>

        用此方法可以模擬留言,或者可以坐灌水機器人,思路都是一樣的

        4、用cURL上傳文件

        代碼如下:
        <?php
        //索要上傳的數據
        $data = array('name'=>'beauty', "upload"=>"@a.zip");

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1/Socket/upload_file.php");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

        $res = curl_exec($ch);

        curl_close($ch);

        echo $res;

        ?>

        注意:要發送文件時,要在文件名前面加上 @ 前綴并使用完整路徑

        5、cURL設置項

        其實,cURL有許多配置選項,這些選項才是cURL的靈魂,通過setopt()設置,下面總結幾個比較常見且重要的配置項,希望在對讀者在以后用到cURL時有一定的幫助:


        CURLOPT_AUTOREFERER:當根據location:重定向時,自動設置header中的Referer:信息

        CURLOPT_COOKIESESSION:啟用時cURL會緊緊傳遞一個sessioncookie,忽略其他cookie

        CURLOPT_HEADER:將頭文件的信息作為數據流輸出

        CURLOPT_INFILESIZE:設置上傳文件的大小,單位為字節

        CURLOPT_MAXCONNECTS:允許最大連接數量

        CURLOPT_MAXREDIRS:指定HTTP重定向的最多數量

        CURLOPT_COOKIE:設置HTTP請求中“cookie:”部分的內容,多個cookie用分號跟個,分號后帶一個空格

        CURLOPT_POSTFIELDS:全部數據用HTTP協議中的“POST”操作發送要發送文件,在文件名前面加上@前綴并使用完整路徑

        .......

        具體更多配置項請參考PHP手冊

        cURL功能很強大,它是一個通用的庫,并非PHP獨有。

        希望讀者通過本博文的幾個經典cURL例子的學習能有所收獲。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        PHP中CURL的幾個經典應用實例_javascript技巧

        PHP中CURL的幾個經典應用實例_javascript技巧:1、cURL請求的基本步驟: (1)初始化 (2)設置選項,包括URL (3)執行并獲取HTML文檔內容 (4)釋放cURL句柄 代碼如下: //1、初始化 $ch = curl_init(); //2、設置選項,包括URL curl_setopt($ch, CURLOPT_URL, http:
        推薦度:
        標簽: php js 經典
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产午夜精品久久久久免费视 | 国产成人亚洲精品91专区手机| 中文字幕专区在线亚洲| 亚洲国产高清美女在线观看| 国产成人+综合亚洲+天堂| 亚洲性线免费观看视频成熟| 亚洲熟妇无码AV在线播放| 亚洲精品中文字幕乱码三区| 久久亚洲最大成人网4438| 亚洲国产欧美日韩精品一区二区三区| 亚洲国产精品无码观看久久| 日本免费一区二区三区| 亚洲国产精品狼友中文久久久| 在线看亚洲十八禁网站| 日本免费网址大全在线观看| 亚洲激情在线观看| a级黄色毛片免费播放视频| 久久久久一级精品亚洲国产成人综合AV区 | 久久精品亚洲综合| 免费国产污网站在线观看不要卡| 日本激情猛烈在线看免费观看| 日韩午夜免费视频| 亚洲乱码中文论理电影| **aaaaa毛片免费| 亚洲邪恶天堂影院在线观看| 99re6热视频精品免费观看| 国产日韩亚洲大尺度高清| 中文字幕版免费电影网站| 4399影视免费观看高清直播| 亚洲日本中文字幕区| 国产激情免费视频在线观看| 中文字幕亚洲综合精品一区| 亚洲欧美国产欧美色欲| 精品熟女少妇AV免费观看| 亚洲中文字幕无码久久2017| 国产成人亚洲合集青青草原精品 | 中文字幕a∨在线乱码免费看| 亚洲AV无码乱码在线观看性色扶 | 亚洲制服丝袜在线播放| 很黄很黄的网站免费的| 亚洲尤码不卡AV麻豆|