Home  >  Article  >  Backend Development  >  Solution to PHP request remote address setting timeout

Solution to PHP request remote address setting timeout

墨辰丷
墨辰丷Original
2018-05-31 09:52:481968browse

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!

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