検索
ホームページphp教程php手册PHP-Push技術によりリフレッシュ機能を実現

リフレッシュ

サーバープッシュとは少し前に流行った「プッシュ」技術ですが、インターネット上の情報のほとんどは cgi で、フランス語の Web サイトでそのような紹介を時々見かけました。何かを理解するには、彼のプログラムからしか学ぶことができません。学ぶための例を示します。チャット ルームでのデータ送信、Web サイトのニュース更新、その他の頻繁に更新されるページに使用できます。

これまで、更新は主にページにタグを追加することで行われていました。





または、JavaScript のタイムアウト + リロードを使用しますが、この更新方法は時間設定に依存するため、連続したデータを提供できません。判断するのが難しい。サーバー プッシュを使用するサーバーは、クライアントがリクエストを行った後、クライアントとの永続的な接続を確立し、その後、サーバーはクライアントのリクエストに従ってデータ パケットをサーバーに継続的にプッシュします。気付かない遅延により、サーバーの応答とリクエストが同期レベルに達しているように感じられます。

まず例を見てから説明しましょう。

img.php

set_time_limit(0);
$file = "./1.jpg";
$sep = "gIrLsKiCkAsSiTsAySsOoNaTsHiRt";
if(ereg(".*MS IE.*" , $HTTP_SERVER_VARS["HTTP_USER_AGENT"])){
//IEブラウザの場合は直接出力して終了します。Header("Cache-Control: no-cache")は試していません。 ;
header("Pragma: no-cache");
header("Content-type: image/jpeg");
header("Content-size: " . filesize($file));
readfile($file) ;
}else{
header("Content-Type: multipart/x-mixed-replace; border=$sep");
//ここが重要です、MIME タイプの説明を見てください

//理解しています
print "- -$sep
";
do{
print "Content-Type: image/jpeg
";
readfile($file);
print "
--$sep
";
flush();
$mt = filemtime ($file);
do{
sleep(1);
clearstatcache();
}while($mt == filemtime($file));
}while(1);
}
? >




これは、画像のコンテンツを継続的に出力する、永続的に実行されるページです (ネットワークが一定の場合)。 PHP-Push技術によりリフレッシュ機能を実現 次に、Netscape またはその他の IE 以外のブラウザを開いて呼び出しページを表示します。変化はないようです。心配しないでください。次のステップは、画像 1.jpg を変更する方法です。たとえば、時間に応じて 1.jpg をカバーする 2 つの画像を作成します (この方法を使用することもできます)。 1.jpg が変更される限り、コピーして上書きします)。この時点で、呼び出しページの画像が自動的に更新されることがわかります。

使用中に問題が見つかるでしょう:なぜ画像が自動的に更新されないのか。これは、クライアントが一定期間サーバーにリクエストを行っていない、つまりブラウザに新しいコンテンツが一定期間入力されていないため、接続タイムアウトが発生する可能性があるためです。解決策は何でしょうか?上記の FTP 接続方法と同様に、実行ページで空のシグナルをブラウザに追加できます。 do...while(1); の間に print("") を追加します。転送部分については、もっと興味があったので、次の情報を参照してください。

要件
Apache-1.3.14/PHP4.0.3pl1 サーバーおよびさまざまな Netscape クライアントで動作する可能性があります。他のサーバーの組み合わせは Netscape 4.7x および 6.0/Mozilla でテストされました。私の知る限り、Internet Exploiter はユーザーに「MSIE」がある場合はサポートされません。 -エージェント文字列 スクリプトは 1 つの画像を表示して終了します。

Update 20020108: freshmeat を少し調べたところ、IE でストリームを表示できるようにするための Andy Wilcock の Cambozola Java アプレットが見つかりました。現在のバージョンは「名前ベース」の仮想ホストでは動作しませんが、すぐにパッチが提供される予定です。
ソース
ダウンロード


$file = "./latest.jpg";
$sep = "girlLsKiCkAsSiTsAySsOoNaTsHiRt";

if (ereg(".*MSIE.*",$HTTP_SERVER_VARS["HTTP_USER_AGENT"]))
{
# IE の場合は、写真を 1 枚吐き出して終了します
header("Cache-Control: no-キャッシュ");
header("プラグマ: no-cache");
header("Content-type: image/jpeg");
header("Content-size: " . filesize($file));
readfile( $file);
}
else
{
# IE でない場合は、ブラウザに try
header("Content-Type: multipart/x-mixed-replace; border=$sep");
print "--$ sepn";
do {
print "Content-Type: image/jpegnn";
readfile($file);
print "n--$sepn";
flush();
$mt = filemtime($file);
do {
sleep (1);
# 同じ画像は出力されませんtwice.
clearstatcache();
} while ($mt == filemtime($file));
} while (1);
}
?>


の外側に空白行がないことを確認してください。 ?>あなたのスクリプトで。これにより、ひどいヘッダーが送信されるのが早すぎます。
HTML ページ内のスクリプトを画像であるかのように参照してください:

PHP-Push技術によりリフレッシュ機能を実現

IE の「革新性」の欠如を補うために、画像を参照するページで次の PHP を使用します:



if (ereg("MSIE",$HTTP_SERVER_VARS["HTTP_USER_AGENT"] )) {
echo "n";
}
?>




声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境