<form action="doAction.php" method="get">
<input type="hidden" name = "act" id="add">
<label for="username">昵称</label>
<input type="text" name="username" id="username" placholder="请输入你的昵称"><br/>
<label for="title">标题</label>
<input type="text" name="title" id="title" placholder="请输入你的标题"><br/>
<label>留言</label>
<textarea cols="50" rows="5" name="content" id="content"></textarea><br/>
<label>表情</label>
<input type="radio" name="biaoqing" value="1.jpg" checked><img width="50px" height="50px" src="img/1.jpg">
<input type="radio" name="biaoqing" value="2.jpg" ><img width="50px" height="50px" src="img/2.jpg">
<input type="radio" name="biaoqing" value="3.jpg" ><img width="50px" height="50px" src="img/3.jpg">
<input type="radio" name="biaoqing" value="4.jpg" ><img width="50px" height="50px" src="img/4.jpg"><br/>
<input type="submit" value="submit">
header("content-type:text/html;charset=utf-8;"); 设置页面内容是html;编码格式是utf-8;
isset() 函数— 检测变量是否设置。
语法:bool isset ( mixed $var [, mixed $... ] )
返回值:
若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。
注意: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。
file_exists() 函数检查文件或目录是否存在。
如果指定的文件或目录存在则返回 true,否则返回 false。
语法:file_exists(path)
filesize() 函数返回指定文件的大小。
若成功,则返回文件大小的字节数。若失败,则返回 false 并生成一条 E_WARNING 级的错误。
语法:filesize(filename)
<?php
header("content-type:text/html;charset=utf-8;");
$username = isset($_GET['username'])?$_GET['username']:'';
$title = isset($_GET['title'])?$_GET['title']:'';
$content = isset($_GET['content'])?$_GET['content']:'';
$biaoqing = isset($_GET['biaoqing'])?$_GET['biaoqing']:'';
$time = date('y-m-d h:i:s');
$act = isset($_GET['act'])?$_GET['act']:'';
$filename = "text.txt";
if(file_exists($filename)&&filesize($filename)>0){
//提取数据;
$str = file_get_contents($filename);
//反序列化把字符转化为二维数组
$arr = unserialize($str);
};
if($act ='add'){
$arr[] = array(
'username'=>$username,
'title'=>$title,
'content'=>$content,
'biaoqing'=>$biaoqing,
'time'=>$time
);
$arr = serialize($arr);
if(file_put_contents($filename,$arr)){
echo '添加成功<br/><a href = "doMesh.php">继续添加</a>|<a href = "mesh.php">查看留言</a>';
}else{
echo '添加失败';
};
}
?>
file_get_contents() 函数把整个文件读入一个字符串中。
语法:file_get_contents(path,include_path,context,start,max_length)
serialize() 将变量序列化 — 产生一个可存储的值的表示
说明
serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。
这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。
想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。serialize() 可处理除了 resource 之外的任何类型。
unserialize — 反序列化 — 从已存储的表示中创建 PHP 的值
说明
mixed unserialize ( string $str )
unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。
如果传递的字符串不可解序列化,则返回 FALSE,并产生一个 E_NOTICE。
file_put_contents() 函数把一个字符串写入文件中。
与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
语法:file_put_contents(file,data,mode,context)
<?php
$filename = "text.txt";
if(file_exists($filename)&&filesize($filename)>0){
//提取数据;
$str = file_get_contents($filename);
//反序列化把字符转化为二维数组
$userInfo = unserialize($str);
};
?>
<?php
$filename = "text.txt";
if(file_exists($filename)&&filesize($filename)>0){
$str = file_get_contents($filename);
$userInfo = unserialize($str);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>留言列表页---<a href = "doMesh.php">添加留言</a></h3>
<table border="1">
<tr>
<td>编号 </td>
<td>标题</td>
<td>内容</td>
<td>用户名</td>
<td>发布时间</td>
<td>心情</td>
</tr>
<?php foreach( $userInfo as $key=>$val){
?>
<tr>
<td><?php echo $key+1; ?></td>
<td><?php echo $val['title']; ?></td>
<td><?php echo $val['content']; ?></td>
<td><?php echo $val['username']; ?></td>
<td><?php echo $val['time']; ?></td>
<td><img style="width:50px;heigh:50px;" src="img/<?php echo $val['biaoqing']; ?>"></td>
</tr>
<?php
}
?>
</table>
</body>
</html>