かつて、スタートレッカー チャット ルームと呼ばれる、かなり人気のある Web チャット ルームがありました。私は友人のおかげでこのチャット ルームに参加しています。スタートレッカーのチャット仲間はほぼ間違いなく私と同じサークルのメンバーではありませんが、ほとんどがフレンドリーで興味深い人たちだと思います。しかし、スタートレッカーがシャットダウンすると、バックグラウンドで実行されている Perl のおかげでサーバーのリソースが使い果たされてしまい、幸せでフレンドリーな人々は去らなければならず、行き場がなくなりました。私は幸運なことに、その期間中に自分のスターのような
トレッカー チャット ルームを開くことができ、オリジナルのトレッカーのホームレス チャット ルームの多くと接続しようと試み始めました。 Perl によって引き起こされるリソース消費の問題を警戒していた私は、友人から PHP を勧められたときはとてもうれしかったです。
このうまく設計された Web チャット ルームは、フォームから渡された変数を取得し、それらを HTML に処理して、ファイルに書き込みます。フォームとメッセージ ファイルをフレーム内に配置すると、BeSeen というチャット ルームによく似ていることがわかります。もちろん、このチャット ルームの良いところは、
私たちのチャット ルームが BeSeen のチャット ルームよりも少し賢いことです。
<フォーム action="chat.php3" メソッド="post"> 名前 :
メッセージ :
上記が基本的な入力フォームです。もっと見た目を美しくしたいと思うかもしれませんが、どのような目的であっても、これが対処すべきことです。 $name と $message という 2 つの変数を chat.php3 に送信します。
ただし、これらの変数を処理する前に、メッセージ ファイルから現在のコンテンツを取り出す必要があります。そうしないと、一度に 1 つのメッセージしか表示できません。会話を管理する単一の方法はほとんどありません。自分のメッセージ ファイルの構造をよく知っている限り、すべてのメッセージが復帰文字で終わることがわかります。これは、file() 関数を使用してメッセージ ファイルを配列に読み取ることができることを意味します。
メッセージファイルは12行あります。 12 行のうち、1 行目はヘッダー情報、2 行目から 11 行目は古いメッセージ、12 行目は私のフッターです。
私が最も興味があるのは、古いメッセージをすべて含む文字列を取得することです。
//ファイルを配列に読み込みます
$message_array = file("messages.html");
//文字列を編集します
for ($counter = 1; $counter <10; $counter++ ) {
$old_messages .= $message_array[$counter];
}
?>
文字列を処理するとき、for ループの $counter を 0 ではなく 1 に初期化します。これは、$message_array 配列の 0 番目の要素にヘッダー情報が含まれていることがわかっているためであり、それは必要ありません。ループの終了条件は $counter