标签:
利用PHP实现发布留言,并存在txt文本文件中,还可以从文本文件中读取留言,并显示在网页上。
先要用个表单提交留言,写一个简单的html如下:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 5 <title>表单提交</title> 6 </head> 7 <body> 8 <form action="postMsg.php" method="post"> 9 <p>留言标题:<input type="text" name="title" /></p> 10 <p>留言内容:<textarea name="content" id="" cols="30" rows="10"></textarea></p> 11 <p><input type="submit" value="提交" /></p> 12 </form> 13 14 </body> 15 16 </html>
然后提交的数据到哪里呢,action="postMsg.php"表明提交给postMsg.php,然后再处理提交过来的数据,处理过程如下代码注释部分:
1 <?php 2 header("Content-Type:text/html; charset=utf-8");//设置页面内容是html编码格式是utf-8 3 4 // print_r($_POST); 5 6 //开始留言 7 //定义存储格式,以字符串“title,content”形式存储在文本文档上 8 $str = $_POST[‘title‘] . "," . $_POST[‘content‘] . "\n"; 9 10 //php打开文件 11 //fh是一个变量,为资源类型的变量 12 $fh = fopen(‘./msg.txt‘, ‘a‘); 13 14 //往文件里写东西,沿着管子(资源)写 15 fwrite($fh,$str); 16 17 //关闭资源 18 fclose($fh); 19 20 //提示留言成功,并有个返回按钮 21 echo "留言成功" ,"\n" , ‘<input type="button" value="返回" onclick="JavaScript:history.go(-1)" >‘; 22 23 ?>
这样就能在当前文件下的msg.txt文本文件下看到留言。
接下来就是如何读取留言了,在msg.php中遍历整个留言本,并显示出来,最好都加上链接,点进去直接进入留言查看留言内容:
1 <?php 2 header("Content-Type:text/html; charset=utf-8");//设置页面内容是html编码格式是utf-8 3 4 //定义变量tid,表示留言的序号 5 $tid = $_GET[‘tid‘]; 6 7 // echo ‘你想看第‘ ,$tid,‘行留言‘; 8 9 //打开得到文件 10 $fh = fopen(‘./msg.txt‘ , ‘r‘); 11 12 $i = 1; 13 //以列表形式遍历,并显示留言标题 14 echo ‘<ol>‘; 15 while(($row=fgetcsv($fh)) != false) { 16 17 echo ‘<li><a href="readMsg.php?tid=‘ , $i ,‘">‘ , $row[0] , ‘</li>‘; 18 $i ++; 19 } 20 echo ‘</ol>‘; 21 22 ?>
最后是读取留言了:
1 <?php 2 header("Content-Type:text/html; charset=utf-8"); 3 4 $tid = $_GET[‘tid‘]; 5 6 // echo ‘你想看第‘ ,$tid,‘行留言‘; 7 8 //打开得到文件 9 $fh = fopen(‘./msg.txt‘ , ‘r‘); 10 11 $i = 1; 12 13 while(($row=fgetcsv($fh)) != false) { 14 15 if($i == $tid){ 16 echo ‘<h1>‘ , $row[0] , ‘</h1>‘; 17 echo ‘<p>‘ , $row[1] , ‘</p>‘; 18 } 19 $i ++; 20 } 21 22 ?>
$_GET
就是地址传值,用 ‘?‘ 开始传值,多个值间用 ‘&‘ 号分隔,多用于简单的传值,比如说看新闻需要新闻id一般就会用地址传值,$_GET的好处是传值可见,也就是只要一个地址就ok了,容易分享,缺点是不安全,而且有限制字节数.
$_POST
这种提交方式不可见,也就是传的值不会出现在URL地址中,一般用于注册和登录,这种方式因为要安全要高一点,一般会用POST方式,而且POST方式没有限制字节数,填写文章,需要提交大数据的,表单中含有上传文件的,都会使用POST.
fopen()函数打开文件或者URL.如果打开失败,本函数返回FALSE.语法为:fopen(filename,mode,include_path,context),具体参见PHP fopen() 函数
fwrite()函数写入文件(可安全用于二进制文件).语法为:fwrite(file,string,length),具体参见PHP fwrite() 函数
fclose()函数关闭一个打开文件.语法为:fclose(file),具体参见PHP fclose() 函数
fgetcsv()函数从文件指针中读入一行并解析 CSV 字段。与 fgets() 类似,不同的是 fgetcsv() 解析读入的行并找出 CSV 格式的字段,然后返回一个包含这些字段的数组。 fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。语法为:fgetcsv(file,length,separator,enclosure),具体参见PHP fgetcsv() 函数
标签:
原文地址:http://www.cnblogs.com/Jackie0714/p/4880886.html