一,聊天室模块实现
1,聊天室主页面窗口设置
复制代码 代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<!--载入配置文件-->
<?php include_once 'config.php';?>
<!--页面标题-->
<title><?php echo CHAT_NAME; ?></title>
<script language="javascript" src="https://www.jb51.net/main.js"></script>
<frameset rows="80,*,100" cols="*" frameborder="yes" framespacing="0">
<!--顶部窗口-->
<frame src="https://www.jb51.net/top.php" scrolling="No" noresize="noresize" title="topFrame" />
<frameset rows="*" cols="168,*" framespacing="0" frameborder="yes">
<!--左侧窗口-->
<frame src="https://www.jb51.net/list.php" scrolling="No" title="leftFrame" />
<frameset rows="70%,*" cols="*" framespacing="0" frameborder="yes">
<!--公共聊天窗口-->
<frame src="https://www.jb51.net/center.php" scrolling="auto" noresize="noresize" title="mainFrame" />
<!--私聊窗口-->
<frame src="https://www.jb51.net/private.php" scrolling="auto" title="priFrame" />
</frameset>
</frameset>
<!--发言窗口-->
<frame src="https://www.jb51.net/talk.php" scrolling="No" noresize="noresize" title="bottomFrame" />
</frameset>
<noframes>
<body></body>
</noframes>
2,文件操作函数
本聊天室模块使用文本来保存用户列表和发言信息,主要考虑对文件的操作在速度上要优于对数据库的操作。
(1)fopen()函数,打开文件或者URL,如果打开失败,函数返回FALSE
语法:fopen(filename,mode,include_path,context)
参数说明:
filename:必须,规定要打开的文件或URL
mode:必须,规定要求到该文件/流的访问类型。
include_path:可选,如果也需要在include_path中检索文件的话,可以将该参数设为1或TRUE。
context:可选。规定文件句柄的环境,context是可以修改流的行文的一套选项
mode参数的取值:
"r":只读方式打开,将文件指针指向文件头。
"r+":读写方式打开,将文件指针指向文件头。
"w":写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建。
"w+":读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建。
"a":写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建。
"a+":读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建。"x":创建并以写入方式打开,文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建。"x+":创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建。
(2)fclose()函数,关闭打开的文件
语法:fclose(file)
参数:file:必须,规定要关闭的文件。file参数是一个文件指针,fclose()函数关闭指针指向的文件。文件指针必须有效,并且是通过fopen()或fsockopen()成功打开的文件。如果成功则返回true,否则返回false。
(3)读取文件函数
********
fgets(file,length)函数用于一次读取一行数据
file:必须,规定要读取的文件
length:可选,规定要读取的字节数,默认是1024字节。从file指向的文件中读取一行并返回长度最多为length-1字节的字符串。碰到换行符(包括在返回值中)、EOF或者已经读取了length-1字节后停止。如果没有指定length,默认为1K,或者说1024字节。若失败,则返回false。
********
file(path,include_path,context),将文件作为一个数组返回,数组中的每个单元都是文件中相应的一行,包括换行符在内。若失败,则返回false。
path:必须,规定要读取的文件。
include_path:可选。如果想在include_path中搜索文件,将该参数设为1.
context:可选。规定文件句柄的环境。context是一套可以修改流的行为的选项,若使用null,则忽略。
********
file_get_contents(path,include_path,context,start,max_length),是用于将文件的内容读入到一个字符串中的首选方法。
path:必须,规定要读取的文件
include_path:可选,如果也想在include_path中搜寻文件的话,可以将该参数设为"1".
context:可选,规定文件句柄的环境。context是一套可以修改流的行为的选项。若使用null,则忽略。
start:可选,规定在文件中开始读取的位置。
max_length:可选,规定读取的字节数。