php用curl抓取網頁問題

來源:互聯網
上載者:User
封裝了一個curl抓取網頁的函數,在本地測沒問題;放到測試伺服器上後,如果通過瀏覽器訪問執行,大部分時候函數返回的HTTP狀態代碼返回0,錯誤資訊`Error:name lookup timed out`,極其偶像的情況下返回200成功;但如果直接在測試伺服器上直接用命令列執行,100%成功。代碼如下:
static public function curlGet($url, $data = array(), $header = array(), $timeout = 3, $port = 80)    {        $is_ssl  = substr($url, 0, 5) == 'https' ? 1 : 0;        $ch = curl_init();        if (!empty($data)) {            $data = is_array($data)?http_build_query($data): $data;            $url .= (strpos($url,'?')?  '&': "?") . $data;        }        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');        curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); //是否抓取跳轉後的頁面        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);        curl_setopt($ch, CURLOPT_POST, 0);        //curl_setopt($ch, CURLOPT_PORT, $port);        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);        curl_setopt($ch, CURLOPT_REFERER, $url);        // curl_setopt($ch, CURLOPT_USERAGENT, self::url2useragent($url));                if($is_ssl){            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳過認證檢查            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 從認證中檢查SSL密碼編譯演算法是否存在        }        $result = array();        $result['result'] = curl_exec($ch);        $result['http_code'] = curl_getinfo($ch,CURLINFO_HTTP_CODE);        if (0 != curl_errno($ch)) {            $result['error']  = "Error:\n" . curl_error($ch);        }        curl_close($ch);        return $result;    }
我個人感覺和代碼應該關係不大,不知是哪的問題。望各路大神不吝賜教,指點迷津,不勝感激。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.