English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHPでリモートアドレスのリクエストにタイムアウト時間を設定する方法の解決策

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://ja.oldtoolbag.com/",0, $ctx);

2、fopen リクエスト超時設定

$timeout = array(
'http' => array(
'timeout' => 5 //設定了一个超時時間,单位為秒
)

$ctx = stream_context_create($timeout);
if ($fp = fopen("https://ja.oldtoolbag.com/", "r", false, $ctx)) {
while( $c = fread($fp, 8192)) {
echo $c;
}
fclose($fp);
}

3、curlのリクエストタイムアウト設定

CURLは、HTTPプロトコルのインターフェースにアクセスするために常用のlibライブラリで、高性能であり、いくつかの並行サポート機能もあります。

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_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のリモートアドレスのタイムアウト設定の解決策の全てです。皆さんに多くのご支援と励ましを願います~

おすすめ