欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決file_get_contents無法請(qǐng)求https連接的方法

 更新時(shí)間:2013年12月17日 10:57:27   作者:  
PHP.ini默認(rèn)配置下,用file_get_contents讀取https的鏈接,就會(huì)報(bào)如下錯(cuò)誤,本文給出解決方法

錯(cuò)誤: Warning: fopen() [function.fopen]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?

解決方案有3:

1.windows下的PHP,只需要到php.ini中把extension=php_openssl.dll前面的;刪掉,重啟服務(wù)就可以了。

2.linux下的PHP,就必須安裝openssl模塊,安裝好了以后就可以訪問了。

3.如果服務(wù)器你不能修改配置的話,那么就使用curl函數(shù)來替代file_get_contents函數(shù),當(dāng)然不是簡(jiǎn)單的替換啊。還有相應(yīng)的參數(shù)配置才能正常使用curl函數(shù)。

對(duì)curl函數(shù)封裝如下:

復(fù)制代碼 代碼如下:

function http_request($url,$timeout=30,$header=array()){ 
        if (!function_exists('curl_init')) { 
            throw new Exception('server not install curl'); 
        } 
        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
        curl_setopt($ch, CURLOPT_HEADER, true); 
        curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
        if (!emptyempty($header)) { 
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
        } 
        $data = curl_exec($ch); 
        list($header, $data) = explode("\r\n\r\n", $data); 
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
        if ($http_code == 301 || $http_code == 302) { 
            $matches = array(); 
            preg_match('/Location:(.*?)\n/', $header, $matches); 
            $url = trim(array_pop($matches)); 
            curl_setopt($ch, CURLOPT_URL, $url); 
            curl_setopt($ch, CURLOPT_HEADER, false); 
            $data = curl_exec($ch); 
        } 

        if ($data == false) { 
            curl_close($ch); 
        } 
        @curl_close($ch); 
        return $data; 

相關(guān)文章

最新評(píng)論