Home >Backend Development >PHP Problem >How to set timeout in php
How to set the timeout time in php: First open the php.ini configuration file; then change [max_execution_time=30] to [max_execution_time=600]. If you do not have server modification permission, you can also use the ini_set() function to set the timeout.
Initial setting script execution time
(Recommended tutorial: php video tutorial)
Open php.ini file, find:
max_execution_time=30
Modify to:
max_execution_time=600
If you do not have server modification permissions, you can set the timeout through the built-in PHP script method. In PHP that needs to perform long-term operations Add the following code to the file:
<?phpini_set('max_execution_time', 600);//秒为单位,自己根据需要定义
You can also set the timeout through the .htaccess file and add the following code to the file:
php_value max_execution_time 600
Method for PHP to request a remote address to set the timeout:
1, file_get_contents
Request timeout setting
$timeout = array( 'http'=> array( 'timeout'=>5//设置一个超时时间,单位为秒 ) ); $ctx = stream_context_create($timeout); $text = file_get_contents("https://www.jb51.net/",0, $ctx);
2, fopen
Request timeout setting
$timeout = array( 'http' => array( 'timeout' => 5 //设置一个超时时间,单位为秒 ) ); $ctx = stream_context_create($timeout); if ($fp = fopen("https://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, with high performance and Some concurrency support features, etc.
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']);
If you want to learn more about programming, please pay attention to the php training column!
The above is the detailed content of How to set timeout in php. For more information, please follow other related articles on the PHP Chinese website!