4

次のコードは、ランダムな時間に36時間ごとに1回中断します。info.txtの正確性が保証されます。単純なprint 'test';、または問題sleep(1);の境界線$handlewhile問題を回避しますが、なぜですか?

$handle = fopen("http://www.domain.do/info.txt", "r");
while (!feof($handle)) {
  // [do stuff]
}
fclose ($handle);

コードはcronジョブによって実行されます。

4

2 に答える 2

2

sleep() またはいくらかの遅延を追加すると、fopen がその場所からファイルを取得する時間が与えられます...「ランダムな」効果がネットワーク上のトラフィックであり、取得が通常よりわずかに長くなる可能性があると推測しています。

cURL を使用してデータを取得できます。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.domain.do/info.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);

$outputファイルの内容が含まれるため、おそらく区切り文字として改行を使用して文字列を配列に分割する必要があります...ファイルの内容がわからないのは推測だけです:)

于 2012-10-31T10:40:19.700 に答える
0

どうもありがとう。このジョブは、curlを使用して短期間にエラーなしで機能します。長期的にもチェックしていきます。7日以内にフィードバックをお送りします。

于 2012-11-12T15:29:57.663 に答える