首页 > PHP学习 文件操作函数的应用--简单网络留言模板

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

 1 php
 2 /**
 3     网络留言板模式
 4     主要运用到的函数有
 5         fopen fclose flock fwrite fread explode list
 6 */
 7 ?>
 8 
 9 error_reporting(E_ALL && !E_NOTICE) ?>
10 
11     
12         网络留言板模式
13     
14     
15         php
16             //声明变量来保存文件名
17             $filename = "data_text.txt";
18             
19             //判断用户是否提交 若是则写入文件
20             if(isset($_POST["sub"])){
21                 //将三条信息整合成一条,用”||“隔开 用”<|>“结束
22                 $message = $_POST["username"]."||".$_POST["title"]."||".$_POST["mess"]."<|>";
23                 writeMessage($filename,$message    );
24             }
25             
26             //文件存在则读取数据
27             if(file_exists($filename))
28                 readMessage($filename);
29             
30             /**
31                 自定义一个向文件中写入数据的函数
32             */
33             function writeMessage($filename,$message){
34                 $fp = fopen($filename,"a");//以追加模式打开文件
35                 if(flock($fp,LOCK_EX)){
36                     fwrite($fp,$message);
37                     flock($fp,LOCK_UN);
38                 }else{
39                     echo "不能锁定文件";
40                 }
41                 fclose($fp);
42             }
43             
44             /**
45                 自定义一个遍历读取文件的函数
46             */
47             function readMessage($filename){
48                 $fp = fopen($filename,"r");
49                 flock($fp,LOCK_SH);
50                 $buffer = "";
51                 //将文件中的数据读入到$buffer中
52                 while(!feof($fp))
53                     $buffer .= fread($fp,1024);
54                 //通过”<|>“将每行留言分隔并存入数组中
55                 $data = explode("<|>",$buffer);
56                 //遍历数组并将每行数据再分隔
57                 foreach($data as $line){
58                     list($username,$title,$message) = explode("||",$line);
59                     if($username != "" && $title != "" && $message != ""){
60                         echo $username.'说';
61                         echo ' '.$title.',';
62                         echo $message."
"; 63 } 64 } 65 flock($fp,LOCK_UN); 66 fclose($fp); 67 } 68 ?> 69 70 71 72
73 用户名:
74 标  题:
75 76 77
78 79

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

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

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

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

转载于:https://www.cnblogs.com/banshaohuan/p/4979704.html

更多相关:

  • /** =====================================================================================** Filename: unpack.c** Description: 仅作为代码分享,转载请注明作者 *          (相对...

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...

  • head 看文件的前100行head -100  filename   tail/tailf查看文件的后100行tail -100  filename 或 tail -n 100  filename tailf filename == tail -f filename   sed sed -n '100,200p' filename...

  • public static void down(HttpServletRequest request,    HttpServletResponse response) throws Exception {         String name="aaa.*";//文件名   String uploadPath = UploadF...

  • 1.Scatter  从一个Channel读取的信息分散到N个缓冲区中(Buufer). 2.Gather  将N个Buffer里面内容按照顺序发送到一个Channel.       Scatter/Gather功能是通道(Channel)提供的  并不是Buffer, Scatter/Gather相关接口 类图     Re...

  • 你可能看到了表的前缀非常奇怪。Joomla将替换这个前缀,用安装时候指定的内容。对于通常的安装,这个表名将是jos_hello,这样可以多个安装使用一个数据库,并且能够避免表名冲突。 表中有两个字段,一是id,是主键,一是greeting. 以上内容保存在 install.utf.sql. 创建卸载sql文件 尽管我们希望永远不必...