ホームページ  >  記事  >  バックエンド開発  >  PHPリクエストのリモートアドレス設定タイムアウトの解決策

PHPリクエストのリモートアドレス設定タイムアウトの解決策

墨辰丷
墨辰丷オリジナル
2018-05-31 09:52:481978ブラウズ

この記事では、PHP がリモート アドレスを要求する際のタイムアウトを設定する解決策を主に紹介します。興味のある方はぜひ参考にしてください。

php は、リモート アドレスをリクエストするためのタイムアウトを設定します。この記事では、file_get_contents、fopen、curl という 3 つの単純な一般的な関数のタイムアウトを設定する方法を主に説明します。最高の効率。

1. file_get_contents リクエストのタイムアウト設定

$timeout = array(
'http'=> array(
'timeout'=>5//设置一个超时时间,单位为秒
)
);
$ctx = stream_context_create($timeout);
$text = file_get_contents("http://www.jb51.net/",0, $ctx);

2. fopen リクエストのタイムアウト設定

$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 は、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で16進数のカラーランダムジェネレーター関数を実装する方法

PHPのフィルタリング、検証、エスケープ、パスワードの実践的なチュートリアル方法

php 実装方法c#

と一貫したDES暗号化と復号化

以上がPHPリクエストのリモートアドレス設定タイムアウトの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。