English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Настройка времени ожидания запроса для удаленного адреса php, основное внимание уделяется методам настройки времени ожидания для трёх простых и часто используемых функций: file_get_contents, fopen, curl. В общем случае рекомендуется использовать curl, так как он обладает наилучшей производительностью и наибольшей эффективностью.
1. Настройка времени ожидания запроса file_get_contents
$timeout = array( 'http' => array( 'timeout' => 5 // Установка времени ожидания, единицы измерения - секунды ) ); $ctx = stream_context_create($timeout); $text = file_get_contents("https://ru.oldtoolbag.com/",0, $ctx);
2. Настройка времени ожидания запроса fopen
$timeout = array( 'http' => array( 'timeout' => 5 // Установка времени ожидания, единицы измерения - секунды ) ); $ctx = stream_context_create($timeout); if ($fp = fopen("https://ru.oldtoolbag.com/", "r", false, $ctx)) { while( $c = fread($fp, 8192)) { echo $c; } fclose($fp); }
3. Настройка времени ожидания запроса curl
CURL - это часто используемая библиотека для доступа к интерфейсам протокола HTTP, обладающая высокой производительностью и некоторыми функциями поддержки многопоточности.
curl_setopt($ch, opt) позволяет установить некоторые настройки времени ожидания, включая:
a 、CURLOPT_TIMEOUT - время выполнения cURL, разрешенное в секундах.
b、CURLOPT_TIMEOUT_MS - время выполнения cURL, разрешенное в миллисекундах.
c、 CURLOPT_CONNECTTIMEOUT - время ожидания перед установлением подключения. Если установлено в 0, то ожидание бесконечно.
d、 CURLOPT_CONNECTTIMEOUT_MS - время ожидания подключения, выраженное в миллисекундах. Если установлено в 0, то ожидание бесконечно. e、 CURLOPT_DNS_CACHE_TIMEOUT - время хранения DNS информации в памяти, по умолчанию 120 секунд.
$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']);
Вот и все, что я могу предложить вам по решению проблемы установки времени ожидания запроса PHP на удаленный адрес. Надеюсь, это поможет и вы поддержите наш сайт с руководствами!