Home  >  Article  >  Backend Development  >  Solution to file_get_contents being blocked_PHP tutorial

Solution to file_get_contents being blocked_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:57:221417browse

In php, the file_get_contents function can directly collect the content of the remote server and then save it to a variable. The mediator usually disables some IO operation functions such as file_get_contents, fsockopen and so on, because they are afraid of being DDOS

In this case, we cannot change the server's inc.php, and can only write a set of IO ourselves to replace the above PHP function.

The code is as follows
 代码如下 复制代码


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

Copy code

 代码如下 复制代码

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

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

We can use the following code instead

The code is as follows
 代码如下 复制代码
< ?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;
}
?>
Copy code
//Solution to disabling 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_CONNECTTIMEOUT, $timeout); $url = curl_exec($ch); Curl is a tool that uses URL syntax to transfer files and data. It supports many protocols, such as HTTP, FTP, TELNET, etc. It will not be disabled by the server, so we can use it to simulate file_get_contents to open a URL. Use the function_exists function to determine whether PHP supports a function and you can easily write the following function
The code is as follows Copy code
< ?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; <🎜> } <🎜> ?> http://www.bkjia.com/PHPjc/632091.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632091.htmlTechArticleIn php, the file_get_contents function can directly collect the content of the remote server and then save it to a variable. The mediator usually does Put file_get_contents, fsockopen and other IO operation functions...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn