天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

執行、獲取遠程代碼返回:file_get_contents 超時處理的問題詳解

天氣終于晴了,但問題來了。在實現兩個站點間用戶數據同步,當使用php函數 file_get_contents抓取執行遠程頁面時,如果連接超時將會輸出一個Fatal Error或相當的慢,結果導致下面的代碼不能運行。先了解一下php file_get_contents() 函數
定義和用法
file_get_contents() 函數把整個文件讀入一個字符串中。
和 file() 一樣,不同的是 file_get_contents() 把文件讀入一個字符串。
file_get_contents() 函數是用于將文件的內容讀入到一個字符串中的首選方法。如果操作系統支持,還會使用內存映射技術來增強性能。
語法
file_get_contents(path,include_path,context,start,max_length)參數 描述
path 必需。規定要讀取的文件。
include_path 可選。如果也想在 include_path 中搜尋文件的話,可以將該參數設為 "1"。
context 可選。規定文件句柄的環境。
context 是一套可以修改流的行為的選項。若使用 null,則忽略。
start 可選。規定在文件中開始讀取的位置。該參數是 php 5.1 新加的。
max_length 可選。規定讀取的字節數。該參數是 php 5.1 新加的。
說明
對 context 的支持是 php 5.0.0 添加的。
針對超時或頁面過慢,一般可采取兩個解決方案:

一. 利用file_get_contents()第三個參數
復制代碼 代碼如下:
$url = "http://zhoz.com/zhoz.php";     
$ctx = stream_context_create(array(     
‘http' => array(‘timeout' => 10)     
    )     
    );     
$result = @file_get_contents($url, 0, $ctx);     
if($result){     
        var_dump($result);     
    }else{     
echo " Buffer is empty";     
    }     
?>  

此方法1,我經測試在本地反映良好,但如果在外網測試(環境:中國→美國服務器間)基本都是超時的情況。
測試了TimeOut基本沒有用了,建議以下方式

二. 使用curl擴展庫
復制代碼 代碼如下:
$url = "http://zhoz.com/zhoz.php";     
try {     
echo date(‘Y-m-d h:i:s');     
echo "";     
//$buffer = file_get_contents($url);   
$buffer = zhoz_get_contents($url);     
echo date(‘Y-m-d h:i:s');     
if(emptyempty($buffer)) {     
echo " Buffer is empty";     
        } else {     
echo " Buffer is not empty";     
        }     
    } catch(Exception $e) {     
echo "error ";     
    }     
function zhoz_get_contents($url, $second = 5) {     
$ch = curl_init();     
        curl_setopt($ch,CURLOPT_URL,$url);     
        curl_setopt($ch,CURLOPT_HEADER,0);     
        curl_setopt($ch,CURLOPT_TIMEOUT,$second);     
        curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);     
$content = curl_exec($ch);     
        curl_close($ch);     
return $content;     
    }     
?>

綜述,根據系統環境來選擇到底應用哪種方法:
復制代碼 代碼如下:
function vita_get_url_content($url) {  
if(function_exists(‘file_get_contents')) {  
$file_contents = file_get_contents($url);  
} else {  
$ch = curl_init();  
$timeout = 5;  
curl_setopt ($ch, CURLOPT_URL, $url);  
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
$file_contents = curl_exec($ch);  
curl_close($ch);  
}  
return $file_contents;  
}  
?> 

php技術執行、獲取遠程代碼返回:file_get_contents 超時處理的問題詳解,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 99热久久精品国产一区二区 | 年轻的老师5理伦片 | 岛国精品在线观看 | 人人澡人人爽人人精品 | 成年人免费在线视频观看 | 精品无人区麻豆乱码无限制 | 欧美精品做人一级爱免费 | 国产亚洲精品看片在线观看 | 亚在线观看免费视频入口 | 久久国产精品永久免费网站 | 亚洲 欧美 国产 综合 在线 | 爆操大胸美女 | 16女下面流水不遮图免费观看 | 女仆翻身大作战 | 做暖暖视频在线看片免费 | 国产精品美女久久久久AV超清 | 国产白丝精品爽爽久久蜜臀 | 亚洲一区日韩一区欧美一区a | 人妻激情综合久久久久蜜桃 | 午夜福利免费视频921000电影 | 日本乱子伦一区二区三区 | 国产精品久久久久久熟妇吹潮软件 | 美女叉腿掰阴大胆艺术照 | 鸥美一级黄色片 | 亚洲AVAV天堂AV在线网爱情 | 成人天堂婷婷青青视频在线观看 | 青柠在线观看视频在线高清 | 大胸美女被C得嗷嗷叫动态图 | 午夜DJ国产精华日本无码 | AV精品爆乳纯肉H漫网站 | 视频一区国产第一页 | 免费精品一区二区三区AA片 | 日本孕妇大胆孕交 | 亚洲精品高清AV在线播放 | 亚洲精品视频免费在线观看 | 自拍偷拍12p | 国产国产成人人免费影院 | 国产精品久久久久久久久久久 | 俄罗斯极品hd | 国产制服丝袜91在线 | 8090碰成年女人免费碰碰尤物 |