我们讲完了这么多关于文件处理的系统,可是我们连一个最基本的小东西都写不出来。
从这一节开始,大家会发现大家能够写越来越多的东西了。
接下来我们我们来看看演示效果:
在下面一个界面中写入留言内容的表单界面:
存在留言后的展示界面:
我们来看一下文件结构:
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>
看了刚刚的展示内容,我们知道文件存储时:
- 段与段之间进行了分割
- 内容与用户之前用一个特殊的符号进行了分割
下面我们来写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");
?>