これは初めてのことですので、このウェブサイトで質問してください。私はインターネット接続速度をテストするために別のウェブサイトからスクリプトを入手し、else文を追加しました。速度が500を超えると、特定のページにリダイレクトされます。何らかの理由で、私はそれを動作させることができません。 <html>
タグの前にob_start();
を追加し、</html>
タグの後にob_end_flush();
を追加しました。下のコードをbodyタグの間に追加しました。私のPHP if文が動作しない
$kb=512;
flush();
$time = explode(" ",microtime());
$start = $time[0] + $time[1];
for($x=0;$x<$kb;$x++){
echo str_pad('', 1024, '');
flush();
}
$time = explode(" ",microtime());
$finish = $time[0] + $time[1];
$deltat = $finish - $start;
$intspeed = round($kb/$deltat, 0);
echo $intspeed; //just to check if $intspeed has a value
if ($intspeed > 500) {
header("Location: test.php");
exit();
} else {
header('Location: falcons/index.php');
exit();
}
カスタムヘッダーを送信する前にスクリーンに何も印刷できません( 'echo'を使用してください)。画面に何かをエコーしてから、リダイレクトヘッダーを送信しています。それは問題です。エコーを削除します。 –
ユーモラスに、 'echo $ intspeed'はリダイレクトを防ぎます –
出力バッファリングはその周りに起こります...もちろん、そのコードが' ob_start() 'と' ob_end_flush() 'の間にある場合のみ彼は、前または後ではなく、むしろ使用すると言います。 – MichaelRushton