を使用していますが、タイムアウトfile_get_contents
を定義したいと考えています。私は次のようなコンテキストを作成してそれをやろうとしました:
$timeout = array('http' => array('timeout' => 6));
$context = stream_context_create($timeout);
$xml = file_get_contents($hostName,false,$context);
ただし、この値は無視されます。
を使用していますが、タイムアウトfile_get_contents
を定義したいと考えています。私は次のようなコンテキストを作成してそれをやろうとしました:
$timeout = array('http' => array('timeout' => 6));
$context = stream_context_create($timeout);
$xml = file_get_contents($hostName,false,$context);
ただし、この値は無視されます。
デフォルトのタイムアウト セットは 60 秒だと思います。これは、必要な値に変更できます。
<?php
$ctx=stream_context_create(array('http'=>
array(
'timeout' => 30 // 30 sec
)
));
$conetnt = file_get_contents('http://example.com',false,$ctx);
var_dump($conetnt);
?>
私はまだコメントできないので (この場合、質問を編集またはフラグ付けする (重複 (?) として) はおそらく適切ではありません)、フォローアップの質問と回答としてコメントを追加させてください。
タイムアウトに小さな値を割り当てましたが、これにもかかわらず file_get_contents は良い結果を返します
たとえば 1 秒のタイムアウトを設定しても、file_get_contents() はそれ以上の時間がかかり、タイムアウトしないということですか? データの「接続」と「読み取り」にかかる時間を区別するために利用できる低レベルの監視はありますか?
(これは古い質問だと思いますが、同じ質問があったため、検索でこれら2つに遭遇し、それらの間にリンクを設定する必要があると考えました)
PHP 5.2.1以降では、timeout
コンテキスト オプションを指定して、コンテキストを file_get_contents() に渡すことができます。
ini_set('default_socket_timeout', 120);