Home > Article > Backend Development > Examples of advanced usage of file_get_contents in PHP, filegetcontents_PHP tutorial
The example in this article describes the advanced usage of file_get_contents in PHP and is shared with everyone for your reference. The specific analysis is as follows:
First solve the timeout problem of file_get_contents. After the timeout returns an error, make a try like settimeout in js. After more than 3 or 5 errors, it will be confirmed that it cannot connect to the server and give up completely.
Here are two simple solutions:
1. Increase the time limit for timeout
Note: set_time_limit only sets the timeout of your PHP program, not the timeout of the file_get_contents function reading the URL.
I initially thought that set_time_limit could also affect file_get_contents, but it was later tested to be invalid. To truly modify the file_get_contents delay, you can use the timeout parameter of resource $context:
The PHP program code is as follows:
$opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>60, ) ); $context = stream_context_create($opts); $html =file_get_contents('http://www.bkjia.com', false, $context); fpassthru($fp);
2. Multiple attempts
The PHP program code is as follows:
$cnt=0; while($cnt < 3 && ($str=@file_get_contents('http...'))===FALSE){ $cnt++; }
The above method is OK for dealing with timeouts. Next, we will demonstrate using file_get_contents to implement Post, as follows:
PHP program code
function Post($url, $post = null){ $context = array(); if (is_array($post)) { ksort($post); $context['http'] = array ( 'timeout'=>60, 'method' => 'POST', 'content' => http_build_query($post, '', '&'), ); } return file_get_contents($url, false, stream_context_create($context)); } $data = array ( 'name' => 'test', 'email' => 'test@gmail.com', 'submit' => 'submit', ); echo Post('http://www.bkjia.com', $data);
Pay attention to Set_time_out in the document header, otherwise the entire document will time out.
I hope this article will be helpful to everyone’s learning of PHP programming.
file_get_contents() reads the contents of a file, including remote files!!
file_get_contents() function is the preferred method for reading the contents of a file into a string!!
b2d658018cd408a8a896aac48601e8a1
This context refers to "content in the stream".
We know that OS operations are controlled by input and output flows.
When opening some special files (everything under Unix is a file), such as devices, keyboards, screens, network files, and serial ports,
requires input streams to perform some operations. At this time, use stream_context_create to create an "input content".
The actual main use is that most examples are also used to perform HTTP operations (the actual use is far from limited to this function)
Using the content of the HTTP header as the content of the input stream, this Get the content returned by the service after opening the file in this way.
In principle, it still operates on the input and output streams of system files.
927b71007a9705d80c76d407ab609ec4array(
'method'=>"GET",
'header'=> ;"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
//Submit language encoding and cookies to get the response content of a URL
$file = file_get_contents('www.example.com/', false, $context);
?>
I hope it won’t be a tragedy. I couldn’t understand it after talking for a long time