ホームページ > php教程 > php手册 > 掲示板などの簡単なPHP入門ソースプログラム(中国語) - 初心者入門

掲示板などの簡単なPHP入門ソースプログラム(中国語) - 初心者入門

WBOY
リリース: 2016-06-21 09:13:34
オリジナル
796 人が閲覧しました

プログラム|中国語

「星空の放蕩者」PHP 中国語ドキュメントの例を引用:

チャット ルームは、Web サイト上の退屈な人々のための秘密兵器です。同時に、ウェブマスターやその他の担当者もここで時間を潰すことができます。オンラインで活発な恋愛をしている場合でも、少なくともタイピング速度を上げることはできます。
チャット ルームは、実際には複数の人が使用する CGI プログラムです。プログラムは、各人が入力した文字列を、システムが受信した時刻に従って並べ替えて、各ユーザーに送信します。 Web チャット ルームと BBS チャット ルームの違いは、BBS チャット ルームは受け取ったすべての文をチャット ルーム内のすべてのインターネット ユーザーに即座に配信できることです。Web CGI プログラムは BBS Telnet 回線のように常に接続できるわけではなく、Web CGI は情報を迅速に送信する必要があります。可能な限り選択してから接続を終了します。この状況は、Web チャット ルームが依然として HTTP 送信プロトコルを使用しているため、HTTP 実装のバージョンが、バージョン 0.9、1.0、または 1.1 のいずれであっても、ネットワーク接続ポートを長時間占有することができないために発生します。

データをすぐに送信できない問題と情報の更新の問題を解決するために、Netscape はブラウザーのバージョン 3.0 以降の新しい技術を使用し、Internet Explorer も Netscape が開発したこれらの技術を実装しました。 Netscape では、これをサーバー プッシュとクライアント プルの 2 つのテクノロジーに分割しています。サーバー プッシュでは、Web サーバーからの複数の MIME エンコーディングを使用してユーザーにデータを送信しますが、クライアント プルでは HTML メタ タグと http-equiv="Refresh" 属性を使用します。読み込み時間に関しては、content 属性を使用して実現されます。

タグは通常、.. のセクションに配置され、ブラウザがユーザー側の Web ページを更新できるようにします。以下は、15 秒ごとにリロードするように設定されたメタと PHP の例です。



サーバープッシュまたはクライアントプルを使用してチャットルームを作成しない場合、Webブラウザでチャットできるようにする他の方法はありますか?答えは「はい」です。 Java または ActiveX (IE4 および 5 に限定) を使用したり、独自の専用ブラウザ プラグイン プログラム (Qimo のチャット ルームなど) を開発したりすることもできますが、これは PHP とは関係がなく、私たちの焦点でもありません。

また、すべてのネチズンのメッセージは定期的に更新されるため、更新により書きかけの文字列が消去されることを避けるために、チャット ルームを構築するためにフレーム技術を使用する必要があります。以下の例はチャット ルームのメイン プログラムです。




チャットルーム




<br><body><br>このチャット ルームではページ フレームを使用する必要がありますあなたのブラウザは使用できません <br></body><br>






このプログラムはフレームを使用して 2 つの PHP プログラムを実行することをお勧めします。将来のメンテナンスのために、/chatroom などの同じディレクトリに配置してください。さらに、list.php と post.php で同じ変数を使用するために、次の例では、共通の変数パスを env.inc に配置します。これは、/chatroom または Web サーバーの PHP インクルードに配置できます。 Apache) を設定したパスに追加します。


// ファイル名: env.inc
$tempdir="/tmp/";
$chatfile="/tmp/abc";
?>


チャット ルームのバックエンド設計は非常にシンプルで、ファイルを使用するだけで済みます。また、システムの効率を重視する場合は、プロセス通信に UNIX の IPC を使用することもできます。

このセクションでは、ユーザー コメントの内容をファイルに入れる方法について説明します。ここでの例のほとんどは、UNIX/Linux 外部コマンドを使用します。システムにこのコマンド (またはプログラム) がない場合は、関連するプログラムをご自身でインストールしてください。

実際、データをファイルにスローする方が、データベースを使用するよりも高速です。それでも速度を重視する場合は、UNIX マシンに RAM ディスクをインストールし、ファイル アクセス パスを RAM ディスクに設定して、確実にアクセスできるようにすることができます。速度は厳しい要件を満たすことができます。高速検索エンジンとして宣伝している Web サイトの中には、データベース情報全体を RAM ディスクに保存するものもあります。これにより、システム速度がすぐに 10 倍から 100 倍向上します。さらに、RAM の価格は他のソリューションに比べて依然として非常に安価です。 Windows NT を使用している場合は、Microsoft が提供するのを待つか、サードパーティ製品を使用するしかありません。

一部のユーザーは UNIX にあまり詳しくないかもしれません。ここで使用するコマンドを紹介します。

touch: 新しいファイルを作成するか、古いファイルの最終更新日を変更します。

echo に 2 つの大なり記号を加えたもの: 文字列表示を指定された場所にリダイレクトします。

tail: ファイルの最後の数行のデータを表示します。デフォルト値は 10 行で、マイナス記号と数値を使用して表示する行数を変更できます。

以下は、メッセージ文字列の送信と処理を行うプログラムです。このプログラムは env.inc ファイルを使用します。


// ファイル名: post.php
require("env.inc");
if (($chatuser!="") and ($chattext!="")) {
$ chatstr="".date("h:i:s")."-".$chatuser.": " .$chattext;
$cmdstr="echo "".$chatstr."" >> ".$chatfile;
if (!file_exists($chatfile)) passthru("touch ".$chatfile);
passthru( $cmdstr);
}
?>








匿名名:話す:






プログラムは、最初に入力文字列があるかどうかを確認し、匿名および音声コンテンツ文字列がない場合は、音声フォームが表示されます(フォーム)。データがある場合は、文字列と現在時刻がファイルに保存されます(UNIX リダイレクト コマンドを使用)。もちろん、エラーを防ぐために、まずアーカイブできるファイルがあるかどうかを確認してください。ない場合は、最初にファイルをタッチします。この例では、ファイルは /tmp/abc です。






// ファイル名: list.php
require("env. inc");

if (!file_exists($chatfile)) {
echo "まだ開いていません";
exit;
}

$uniqfile=$tempdir.uniqid(rand( ));
$shellcmd="/usr/bin/tail -50 ".$chatfile. " > ".$uniqfile;
passthru($shellcmd);
$chatfilearray=file($uniqfile);
$j= count($chatfilearray);
for ($i=1; $i<=$j; $i++) {
echo $chatfilearray[$j-$i]."
n";
}
unlink( $uniqfile);
?>




上記のプログラムはクライアント プル テクノロジを使用しており、5 秒ごとに更新されます。同様に、共有の env.inc ファイルも必要であり、その中の変数を変更する場合は、すべての Web プログラムで使用できる非常に重要な方法です。場所。たとえば、新しい年に「Copyright (C) 1996-2000」という文字列がファイルに配置されると、1 つのファイルが変更されるだけでサイト全体が変更されます。

if (!file_exists($chatfile)) {
echo "まだ開かれていません";
exit;
}

$uniqfile=$tempdir.uniqid(rand());
$shellcmd="/usr/bin/tail -50 ".$chatfile. " > ".$uniqfile;
passthru($shellcmd);

プログラムはまず、ユーザーがチャット コンテンツ ファイル /tmp/ を送信したかどうかを確認します。 abc 、そうでない場合は、まだ開いていないと表示され、ユーザーがチャット コンテンツを送信するのを待ちます。すでにチャット データがある場合は、最後の 50 エントリを取得し、別のファイルで表示できるように準備します。

$chatfilearray=file($uniqfile);
$j=count($chatfilearray);
for ($i=1; $i echo $chatfilearray[$j-$i ]."
n";
}
unlink($uniqfile);

ファイルを配列変数 $chatfilearray に読み込み、最後に表示されたデータを最初に表示してブラウザに送信します。 もちろん、を使用することもできます。配列をソートする方法ですが、特定の時点で保存された最後のデータが最後にあることを確認してください。ソートは CPU 時間の無駄なので、最後のデータから先頭のデータまでエコーします。使用後は、unlink() コマンドを使用して一時ファイルを強制終了する必要もあります。



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート