<?php
/**
网络留言板模式
主要运用到的函数有
fopen fclose flock fwrite fread explode list
*/
?>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<?php error_reporting(E_ALL && !E_NOTICE) ?>
<html>
<head>
<title>网络留言板模式</title>
</head>
<body>
<?php
//声明变量来保存文件名
$filename = "data_text.txt"; //判断用户是否提交 若是则写入文件
if(isset($_POST["sub"])){
//将三条信息整合成一条,用”||“隔开 用”<|>“结束
$message = $_POST["username"]."||".$_POST["title"]."||".$_POST["mess"]."<|>";
writeMessage($filename,$message );
} //文件存在则读取数据
if(file_exists($filename))
readMessage($filename); /**
自定义一个向文件中写入数据的函数
*/
function writeMessage($filename,$message){
$fp = fopen($filename,"a");//以追加模式打开文件
if(flock($fp,LOCK_EX)){
fwrite($fp,$message);
flock($fp,LOCK_UN);
}else{
echo "不能锁定文件";
}
fclose($fp);
} /**
自定义一个遍历读取文件的函数
*/
function readMessage($filename){
$fp = fopen($filename,"r");
flock($fp,LOCK_SH);
$buffer = "";
//将文件中的数据读入到$buffer中
while(!feof($fp))
$buffer .= fread($fp,1024);
//通过”<|>“将每行留言分隔并存入数组中
$data = explode("<|>",$buffer);
//遍历数组并将每行数据再分隔
foreach($data as $line){
list($username,$title,$message) = explode("||",$line);
if($username != "" && $title != "" && $message != ""){
echo $username.'说';
echo '&nbsp;'.$title.',';
echo $message."<hr>";
}
}
flock($fp,LOCK_UN);
fclose($fp);
}
?> <!--以下为用户输入表单-->
<form action="" method = "post">
用户名:<input type = "text" size = 10 name="username"><br>
标&nbsp;&nbsp;题:<input type = "text" size = 30 name = "title"><br>
<textarea name = "mess" rows = 4 cols = 38>请在这里留言</textarea>
<input type = "submit" name = "sub" value = "留言">
</form>
</body>
</html>

如果有用户留言 则将留言内容保存到文件

自定义保存样式 通过explode函数将其分隔

判断保存留言的文件是否存在 若是则输出

输出的留言是将文件里的内容分解出来的 主要用到函数有:list explode

PHP学习 文件操作函数的应用--简单网络留言模板的更多相关文章

  1. Delphi文件操作函数

    文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道.文件的本质是一个数据流,所有的文件实际上是一串二进制序列.文件管理包括:1.文件操作.2.目录操作.3.驱动器操作.三部分. 1.常见文 ...

  2. PHP常用的文件操作函数集锦

    以下是个人总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来. 一 .解析路径: 1 获得文件名:basename();给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件 ...

  3. C语言样式的文件操作函数

    使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 FILE* fd = fopen(filename ...

  4. Unix无缓冲文件操作函数、文件信息查询

    问题描述:         Unix无缓冲文件操作函数.文件信息查询 问题解决:        struct stat 结构体信息: 具体代码: 具体源文件:

  5. C语言文件操作函数

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * str ...

  6. 总结文件操作函数-文件夹(三)-C语言

    获取.改变当前文件夹: 原型为: #include <unistd.h>   //头文件 char *getcwd(char *buf, size_t size); //获取当前文件夹.相 ...

  7. PHP 面试时常考的文件操作函数

    前两天面试的时候,笔试要求写一些文件操作类函数,什么遍历目录获取文件扩展名之类的,回来后大致总结了一下PHP中一些常见的文件操作函数分享一下. 1.使用递归删除目录及目录下所有文件的方法. funct ...

  8. 【阅读笔记】《C程序员 从校园到职场》第六章 常用文件操作函数 (Part 1)

    参考链接:https://blog.csdn.net/zhouzhaoxiong1227/article/details/24926023 让你提前认识软件开发(18):C语言中常用的文件操作函数总结 ...

  9. Linux C 文件操作函数(~上善止水~)

    翻翻笔记,整理一下 C 语言中的文件操作函数 ~~~~~~,多注意细节,maybe 细节决定成败~ 1. fopen /* fopen(打开文件) * * 相关函数 open,fclose * * 表 ...

随机推荐

  1. 优秀开源项目之一:视频监控系统iSpy

    iSpy是一个开源的视频监控软件,目前已经支持中文.自己用了一下,感觉还是很好用的.翻译了一下它的介绍. iSpy将PC变成一个完整的安全和监控系统 iSpy使用您的摄像头和麦克风来检测和记录声音或运 ...

  2. BZOJ1217:[HNOI2003]消防局的设立

    我对贪心的理解:https://www.cnblogs.com/AKMer/p/9776293.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...

  3. NetScaler VPX在Azure上的部署(二)

    本文是Citrix的工程师协助完成.主要是Citrix的VPX的配置. 导入License   进入NetScaler 中点击管理许可   导入后将有提示,请确认重启.   配置Azure HA 由于 ...

  4. makefile 基础知识

    $@    目标文件名 $< 第一个依赖文件名 $^ 规则所有依赖文件列表 如果不想让执行语句被打印出来,就在语句前面加上@符号 模式规则 %.o:%.c 后缀规则 .c.o 生成单进程的Mak ...

  5. 使用LookAndFeel为界面更换皮肤

    ----------------siwuxie095                             在 Windows 系统中,默认的 Java 运行环境(JRE)会为当前的窗体程序 指定一 ...

  6. Ubuntu12.04安装 vsftpd

    Ubuntu12.04 FTP 的配置   ubuntu安装ftp服务器 1: 安装vsftpd ~$ sudo apt-get install vsftpd 2: 配置vsftpd 2.1 修改vs ...

  7. 《精通Spring4.X企业应用开发实战》读后感第六章(国际化)

  8. js常用知识点汇总

    1.json字符串与json对象相互转化(转至:http://www.jb51.net/article/43136.htm) SON字符串: var str1 = '{ "name" ...

  9. 【mysql 统计分组之后统计录数条数】

    SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条   SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统 ...

  10. <base target="_self"/>标签的用法

    语法 <base target="value"> 属性值 值 描述 _blank 在新窗口中打开被链接文档. _self 默认.在相同的框架中打开被链接文档. _par ...