Home >Backend Development >PHP Tutorial >Solution to PHP request remote address setting timeout
This article mainly introduces the solution to setting the timeout for PHP requesting remote addresses. Interested friends can refer to it. I hope it will be helpful to everyone.
php requests a remote address to set the timeout. It mainly explains how to set the timeout for three simple common functions: file_get_contents, fopen, and curl. Generally, it is recommended to use curl, which has the best performance and the highest efficiency.
1. file_get_contents request timeout setting
$timeout = array( 'http'=> array( 'timeout'=>5//设置一个超时时间,单位为秒 ) ); $ctx = stream_context_create($timeout); $text = file_get_contents("http://www.jb51.net/",0, $ctx);
2. fopen request timeout setting
$timeout = array( 'http' => array( 'timeout' => 5 //设置一个超时时间,单位为秒 ) ); $ctx = stream_context_create($timeout); if ($fp = fopen("http://www.jb51.net/", "r", false, $ctx)) { while( $c = fread($fp, 8192)) { echo $c; } fclose($fp); }
3. curl request timeout Setting
CURL is a commonly used lib library for accessing the HTTP protocol interface. It has high performance and has some concurrency support functions.
curl_setopt($ch, opt) You can set some timeout settings, mainly including:
a, CURLOPT_TIMEOUT sets the maximum number of seconds that cURL is allowed to execute.
b. CURLOPT_TIMEOUT_MS sets the maximum number of milliseconds that cURL is allowed to execute.
c. CURLOPT_CONNECTTIMEOUT The time to wait before initiating a connection. If set to 0, it will wait indefinitely.
d. CURLOPT_CONNECTTIMEOUT_MS The time to wait for a connection attempt, in milliseconds. If set to 0, wait infinitely. e. CURLOPT_DNS_CACHE_TIMEOUT sets the time to save DNS information in memory, the default is 120 seconds.
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT,60); //只需要设置一个秒的数量就可以 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);
The above is the entire content of this article, I hope it will be helpful to everyone's study.
Related recommendations:
How to implement the hexadecimal color random generator function in PHP
PHP Practical Tutorial: Filtering, Verification, Escape and Password Methods
phpAchieve DES encryption and decryption consistent with c# method
The above is the detailed content of Solution to PHP request remote address setting timeout. For more information, please follow other related articles on the PHP Chinese website!