国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php 中file_get_contents超時問題的解決方法

2024-05-04 21:58:08
字體:
供稿:網(wǎng)友

file_get_contents超時我知道最多的原因就是你機器訪問遠(yuǎn)程機器過慢,導(dǎo)致php腳本超時了,但也有其它很多原因,下面我來總結(jié)file_get_contents超時問題的解決方法總結(jié).

創(chuàng)建一個可以控制的資源句柄,通過控制資源句柄超時來控制file_get_contents這個方法的超時時間,使用起來很方便,也很簡單,代碼如下:

  1. $context = stream_context_create(array
  2.      'http' => array
  3.       'timeout' => 3000 //超時時間,單位為秒 
  4.      )  
  5. ));   
  6. // Fetch the URL's contents  
  7. $contents = file_get_contents('http://m.survivalescaperooms.com', 0, $context); 

一、增加超時的時間限制

這里需要注意:set_time_limit只是設(shè)置你的PHP程序的超時時間,而不是file_get_contents函數(shù)讀取URL的超時時間.

我一開始以為set_time_limit也能影響到file_get_contents,后來經(jīng)測試,是無效的,真正的修改file_get_contents延時可以用resource $context的timeout參數(shù),代碼如下 :

  1. $opts = array
  2. 'http'=>array
  3. 'method'=>"GET"
  4. 'timeout'=>60, 
  5. ); 
  6. $context = stream_context_create($opts); 
  7. $html =file_get_contents('http://m.survivalescaperooms.com', false, $context); 

二、一次有延時的話那就多試幾次

有時候失敗是因為網(wǎng)絡(luò)等因素造成,沒有解決辦法,但是可以修改程序,失敗時重試幾次,仍然失敗就放棄,因為file_get_contents()如果失敗將返回 FALSE,所以可以下面這樣編寫代碼:

  1. $cnt=0;  
  2. while($cnt < 3 && ($str=@file_get_contents('http...'))===FALSE) $cnt++; 

以上方法對付超時已經(jīng)OK了,那么Post呢?細(xì)心點有人發(fā)現(xiàn)了'method'=>"GET",對!是不是能設(shè)置成post呢?百度找了下相關(guān)資料,還真可以!而且有人寫出了山寨版的post傳值函數(shù),如下:

  1. function Post($url$post = null) 
  2. $context = array(); 
  3.  
  4. if (is_array($post)) 
  5. ksort($post); 
  6.  
  7. $context['http'] = array 
  8.  
  9. 'timeout'=>60, 
  10. 'method' => 'POST'
  11. 'content' => http_build_query($post'''&'), 
  12. ); 
  13.  
  14. return file_get_contents($url, false, stream_context_create($context)); 
  15.  
  16. $data = array 
  17. 'name' => 'test'
  18. 'email' => 'test@gmail.com'
  19. 'submit' => 'submit'
  20. ); 
  21.  
  22. echo Post('http://m.survivalescaperooms.com'$data); 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 溧水县| 汝南县| 浏阳市| 承德县| 区。| 阜新市| 仙居县| 射洪县| 墨竹工卡县| 新泰市| 太湖县| 兴山县| 玉环县| 宜兰市| 禄丰县| 龙川县| 临江市| 社会| 贵德县| 三台县| 丰镇市| 长武县| 延吉市| 通道| 泉州市| 梓潼县| 嘉鱼县| 鹤山市| 龙胜| 谢通门县| 碌曲县| 绥德县| 郓城县| 双辽市| 青神县| 金溪县| 开平市| 大冶市| 金溪县| 莫力| 丰顺县|