Web オンライン グループ チャット (iPad インターフェイス) のソース コードはすべて ichat.zip 圧縮パッケージに含まれています
主に 3 つのファイルが含まれています:
index.php: フォームの値はニックネーム ファイルを取得し、その値を
chat.php ファイル;
チャット
.php
:メインファイルは、index.php によって渡された値を取得した後、ニックネームを入力するかどうかを決定します。空の場合、それは訪問者です。このページには、このページに送信されるチャット内容入力テキスト ボックスが含まれています。処理のために、チャット レコードは自動的に作成されたチャット ファイルに保存されます。iframe を使用して view.php を呼び出し、チャット コンテンツを表示します。
見る
.php
:
chat.txt ファイルの内容を 1 行ずつ読み取り、逆順に出力し、20 秒ごとに自動的に更新します 改善すべき点: (初心者で勉強中です ) 1. アンチリフレッシュメカニズム 2. コンテンツを読むには、ajax を使用します。 デモアドレス: http://qhbbs.tk/
/*セッションを作成し、ニックネームを入力するかどうかを決定し、入力しない場合は訪問者になります*/ session_start();if(isset($_SESSION['views'] ))$_SESSION['views']=$_SESSION['views']+1;else$_SESSION['views']=1;if($_SESSION['views']==1)$_SESSION ['ユーザー名']=$_POST ['ユーザー'];if(!$_SESSION['ユーザー名'])$_SESSION['ユーザー名']="ゲスト";if($_POST['ユーザー'])$ _SESSION['username']=$ _POST['user'];$user=$_SESSION['username'];$words=$_POST['words'];//チャット内容の割り当てif(empty( $words))exit;savechat( $words,$_SESSION['username']);//チャット内容を保存/*以下はチャット内容を保存する関数です*/function savechat($msg, $user) { $date=date('H:i :s',time()); $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT']; if (!$fp=fopen("$DOCUMENT_ROOT/chat.txt" ,'a+')) { die('チャット履歴ファイルの作成に失敗しました。権限があるか確認してください。'); } $msg = htmlspecialchars($msg); $msg = preg_replace('/([httpftp ://])*([a-zA-] )+.([a-zA-Z0-9_-])+.([a-zA-Z0-9_-])+(a-zA-Z0- 9_)*/', '\0', $msg); $msg = preg_replace('/([a-zA-Z0-9_.]) +@([a-zA-Z0-9-] )+.([a-zA-Z0-9-]{2,4})+/', '\0< ;/a>', $msg);
$msg ='['.$date.']'."t".$user.":".$msg."n";
if (!fwrite($ fp, $msg)) {
die('チャットレコードの書き込みに失敗しました。');
}
fclose($fp);
}
?>
コードをコピーします
$DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT']; $fp=fopen("$DOCUMENT_ROOT/chat.txt",'a+');if(!$fp){echo "chat.txt にチャット ログを書き込めませんでした。もう一度言ってみてください。 ";終了
}
$handle=$fp;
$temp_arr=array();
do
{
$file=fgets($handle,1024);
$temp_arr[]=$file;
}
while(!feof($handle));
fclose($handle );
krsort($temp_arr);//逆順
foreach($temp_arr as $value){
echo "".$value. " "." ";}?>
コードをコピー
|