牛骨文教育服务平台(让学习变的简单)

8.11 小小文件留言本

我们讲完了这么多关于文件处理的系统,可是我们连一个最基本的小东西都写不出来。

从这一节开始,大家会发现大家能够写越来越多的东西了。

接下来我们我们来看看演示效果:

在下面一个界面中写入留言内容的表单界面:
document/2015-09-09/55efe05a2efff

存在留言后的展示界面:

document/2015-09-09/55efe0764ff3c

我们来看一下文件结构:

index.php ---展示输入框和留言内容
write.php ---向message.txt写入数据
message.txt ---存入聊天内容

index.php文件

<?Php
//设置时区
date_default_timezone_set("PRC");

//读了内容
@$string = file_get_contents("message.txt");

//如果$string 不为空的时候执行,也就是message.txt中有留言数据
if (!empty($string)) {

    //每一段留言有一个分格符,但是最后多出了一个&^。因此,我们要将&^删掉
	$string = rtrim($string, "&^");

    //以&^切成数组
	$arr = explode("&^", $string);

    //将留言内容读取
	foreach ($arr as $value) {

        //将用户名和内容分开
		list($username, $content, $time) = explode("$#", $value);

		echo "用户名为<font color="gree">" . $username . "</font>内容为<font color="red">" . $content . "</font>时间为" . date("Y-m-d H:i:s", $time);
		echo "<hr />";
	}

}

?>


<h1>基于文件的留言本演示</h1>
<form action="write.php" method="post">
    用户名:<input type="text" name="username" /><br />

    留言内容:<textarea  name="content"></textarea><br />

    <input type="submit" value="提交" />

</form>

看了刚刚的展示内容,我们知道文件存储时:

  1. 段与段之间进行了分割
  2. 内容与用户之前用一个特殊的符号进行了分割

下面我们来写write.php写入留言至文件的代码:

<?php
//追加方式打开文件
$fp=fopen("message.txt","a");

//设置时间
$time=time();

//得到用户名
$username=trim($_POST["username"]);
//得到内容
$content=trim($_POST["content"]);


//组合写入的字符串:内容和用户之间分开,使用$#
//行与行之间分开,使用&^
$string=$username."$#".$content."$#".$time."&^";

//写入文件
fwrite($fp,$string);

//关闭文件
fclose($fp);


header("location:index.php");

?>