程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> file_get_contents被屏蔽解決方法

file_get_contents被屏蔽解決方法

編輯:關於PHP編程

在php中file_get_contents函數可直接采集遠程服務器內容,然後保存到一個變量中了,介理一般都會把file_get_contents、fsockopen等一些IO操作的函數禁用掉,因為它們怕被 DDOS

那麼一般情況下,我們改不了服務器的 inc.php,只能自己寫一套IO來代替上面的PHP函數了。

 代碼如下 復制代碼


$url = file_get_contents('http://www.bKjia.c0m/');

我們可以用下面的代碼代替

 代碼如下 復制代碼

//禁用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;
 }
 ?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved