PHP 通信: データ転送の中断を処理するにはどうすればよいですか?
はじめに
データ送信のプロセス中に、ネットワークの不安定性またはその他の理由により、データ送信が中断される場合があります。開発者にとって、データ転送の中断にどう対処するかは非常に重要な問題です。この記事では、PHP でデータ送信の中断を処理する方法と、関連するコード例を紹介します。
データ送信中断時の対処方法
set_time_limit()
関数を使用してタイムアウトを設定できます。たとえば、次のコードはタイムアウトを 10 秒に設定します。 set_time_limit(10);
Exception
例外がキャプチャされ、例外情報が出力されます。 #If 送信中に中断が発生した場合、送信を再開することで残りのデータを送信し続けることができます。 HTTP ヘッダー情報を使用して転送の進行状況を記録し、記録された進行状況に基づいて転送を再開できます。次のコード例は、<pre class='brush:php;toolbar:false;'>try {
// 进行数据传输的代码
} catch (Exception $e) {
echo "传输中断:" . $e->getMessage();
}</pre>
ポーリング メカニズムの使用
データを送信するときに、ポーリング メカニズムを使用して、送信が中断されたかどうかを検出できます。たとえば、ハートビート パケットを定期的にサーバーに送信し、サーバーが一定時間内にハートビート パケットを受信しない場合、送信が中断されたと見なされます。次のコード例は、ポーリング メカニズムを使用して送信中断を検出する方法を示しています。 if (isset($_SERVER['HTTP_RANGE'])) { preg_match('/bytes=(d+)-(d+)?/', $_SERVER['HTTP_RANGE'], $matches); $start = intval($matches[1]); $end = intval($matches[2]); // 继续传输从$start到$end的数据 } else { // 开始新的传输 }
以上がPHP 通信: データ転送の中断を処理するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。