加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

file_get_contents被屏蔽处理方法

发布时间:2022-07-27 12:00:52 所属栏目:PHP教程 来源:互联网
导读:在php中file_get_contents函数可直接采集远程服务器内容,然后保存到一个变量中了,介理一般都会把file_get_contents、fsockopen等一些IO操作的函数禁用掉,因为它们怕被 DDOS. 那么一般情况下,我们改不了服务器的 inc.php,只能自己写一套IO来代替上面的PH
  在php中file_get_contents函数可直接采集远程服务器内容,然后保存到一个变量中了,介理一般都会把file_get_contents、fsockopen等一些IO操作的函数禁用掉,因为它们怕被 DDOS.
 
  那么一般情况下,我们改不了服务器的 inc.php,只能自己写一套IO来代替上面的PHP函数了,代码如下:
 
  $url = file_get_contents
  我们可以用下面的代码代替:
 
  //禁用file_get_contents的解决办法  
  $ch = curl_init();  
  $timeout = 10; // set to zero for no timeout  
  curl_setopt ($ch, CURLOPT_URL,'http://www.hzhuti.com/');  
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);   
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
  $url = curl_exec($ch);
  curl是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等,它不会被服务器禁用,所以我们可以用来模拟file_get_contents一样打开一条URL.
 
  利用function_exists函数来判断php是否支持一个函数可以轻松写出下面函数
 
  <?php  
   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;  
   }  
   ?> 

(编辑:开发网_郴州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读