PHP では、curl は HTTP リクエストを送信するための強力なライブラリです。ただし、デフォルトでは、curl リクエストにはタイムアウトが設定され、その後リクエストはキャンセルされます。この時間のデフォルトは 1 秒です。ただし、場合によっては、デフォルトのタイムアウト内でキャンセルするのではなく、curl リクエストを長時間続行する必要がある場合があります。 PHPコードを通じてcurlリクエストのタイムアウトを設定するにはどうすればよいですか?
- php.ini ファイルを変更する
php.ini ファイルにアクセスする権限がある場合は、変更できます。このファイルにあるcurlのタイムアウトを変更します。 php.ini ファイルで、次の 2 つのオプションを見つけます。
; Maximum amount of time (in seconds) that is allowed for cURL functions to execute. ; Note: This value should not be set to an excessive amount, as it will negatively ; affect server performance. ; Default Value: 30 curl_timeout = 30 ; The number of seconds to wait while trying to connect. ; Default Value: 60 curl_connect_timeout = 60
このうち、curl_timeout
は、curl リクエストの最大実行時間、curl_connect_timeout
は、接続タイムアウトです。カールリクエスト時間。値を秒単位で希望の時間に変更する必要があります。変更が完了したら、Apache または PHP-FPM サービスを再起動して変更を有効にします。
- curl_setopt 関数を使用する
php.ini ファイルを変更する権限がない場合は、curl_setopt 関数を使用して次の設定を行うことができます。 PHPコードのcurlタイムアウト。この関数はcurlのオプションを設定するために使用され、その使用法は次のとおりです。
bool curl_setopt ( resource $ch , int $option , mixed $value )
このうち、$ch
はcurlのハンドル(通常はcurl_init関数を使用して初期化されます)であり、 $option
は設定する必要があるオプション、$value
はオプションの値です。タイムアウトには 2 つのオプションを設定できます:
CURLOPT_TIMEOUT:curl 请求最大执行时间(以秒为单位); CURLOPT_CONNECTTIMEOUT:curl 请求连接超时时间(以秒为单位)。
次のコードを使用して上記のオプションを設定できます:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://example.com"); curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 设置 curl 请求最大执行时间为 120 秒(2 分钟) curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); // 设置 curl 请求连接超时时间为 30 秒 $result = curl_exec($ch); curl_close($ch);
上記のコードでは、curl リクエストの最大実行時間を設定します。時間は 120 秒、接続タイムアウトは 30 秒です。 CURL リクエストが 120 秒以内に完了しない場合、または接続が 30 秒以内に正常に確立されない場合、リクエストはキャンセルされます。
- URL にパラメータを追加します
PHP 構成を変更したくない場合、または、curl_setopt 関数を使用したくない場合は、次のパラメータを追加することもできます。 URL にパラメータを設定して、curl リクエストのタイムアウトを設定します。具体的な操作は次のとおりです。
http://example.com/?curl_timeout=120&curl_connect_timeout=30
上記の URL では、curl_timeout
および curl_connect_timeout
パラメータをリクエスト パラメータに追加して、curl のタイムアウト期間を設定しました。リクエスト。 curl は、リクエストを行うときにこれらのパラメータを自動的に読み取り、その値を適用します。この方法は比較的単純ですが、URL に含まれるパラメータがブラウザまたはリバース プロキシ サーバーによって傍受または変更される可能性があるという欠点があります。
概要
php.ini ファイルを変更するか、curl_setopt 関数を使用するか、URL にパラメータを追加することで、PHP での CURL リクエストのタイムアウトを設定できます。 curl を使用する場合は、特定の状況に応じて適切なタイムアウトを設定する必要があります。サーバーのパフォーマンスに影響を与えないように、タイムアウトを長すぎないように設定してください。
以上がPHPでcurlがタイムアウトしないように設定するにはどうすればよいですか?いくつかの方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 中国語版
中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
