PHP スクリプトの一部の動作が異常です。以下のループは、builds
配列から最大値を取得します。これは、ランダムな順序の整数の集まりです。予想どおり最高値を取得しており、問題はありません。
$highest = $builds[0];
for ($i=0; $i < count($builds); $i++) {
if ($builds[$i] > $highest) {
$highest = $builds[$i];
}
}
問題は$highest
、ループの後に使用しようとするときです。( file_get_html
simple_html_dom ライブラリの一部です。スクリプトの他の部分で問題なく使用しています。問題ではありません。)
$html = file_get_html("http://www.blah.com/builds/" . $highest);
//timeout msg on browser
これでタイムアウトしてしまいます。Chrome に「エラー 101: 接続がリセットされました」というメッセージが表示されます。Firefox は、「ページの読み込み中にサーバーへの接続がリセットされました」という同様のメッセージを返します。
少し遊んでみましたが、$highest
どうにかして正しく設定または呼び出されていないことがわかります。
変数を手動で割り当てると、正常にfile_get_html
動作し、期待どおりにデータが返されます。IE スクリプトを作成すると、次のようになります。
$highest = $builds[0];
for ($i=0; $i < count($builds); $i++) {
if ($builds[$i] > $highest) {
$highest = $builds[$i];
}
}
$highest = 20; //I understand the loop is useless because of this
//but I've been running it to make sure it's not the issue.
$html = file_get_html("http://www.blah.com/builds/" . $highest);
//now this returns data
変数を手動で割り当てると機能するのに、ループで設定しないのはなぜですか? prints
変数が正しく設定されていることを確認するために、var_dumps
途中で入力しましたが、正しく設定されているようです。頭がおかしくなった。