PHP 学习之旅
jllkey@gmail
最简留言本代码分析
在 PHPCHINA 上看到的最简留言本(PHP5), 发布时间 2006-8-07。作者 axgle。 此留言本只一个文件 simple.php。实际代码行 18 行。不使用数据库。留言内容保存在本页 面 simple.php,发送留言后页面自动刷新,可以看到当次留言内容。
测试前画面:
图1
测试后画面:
图2
xy968
PHP 学习之旅 代码如下:
&; 单文件:simple.php 01. jllkey@gmail
04. if($title&;&;$txt) { 05. $txt=nl2br($txt); 06. file_put_contents(__FILE__,"
$title".date("Y-m-d H:i:s")."
$txt
",FILE_APPEND); 07. header('refresh:0'); 08. }
09. ?> 10. 11.
最简留言本(PHP5) 12.
13.
18.
测试后代码变化:
&; 改变部分标记黄色 &; … … … 17.
18.
支持换行符 2007-08-06 08:26:08
一行
19. 两行
20. 三行
xy968
PHP
学习之旅 代码行 | 代码 | 注解 /* 嵌入 PHP 代码的开始标记 。*/ 01 /* */ /*
PHP 代码结束标记 。*/ /* 多行注释符号 。注释开始 。*/ /* 注释结束 。*/
jllkey@gmail
13
/* 表单结束符 */
02 $title=$_POST['title']; /* 第 13 行表单(form)的发送方式(method)为 post ; 第 14 行单行文本(text)的名称(name)为”title”。$title 以美元符号开头,表 示一个变量。整句的意思是把要 post 的 title 文本的值赋给变量$title。*/ 03 $txt=$_POST['txt']; /* 第 15 行多行文本域(textarea)的名称为”txt”。整句的 意思是把要 post 的表单内的 txt 文本域的值赋给变量$txt。 */ 04 if($title&;&;$txt) { /* IF 语句。&;&;:和,并且,交集的意思。整句的意思是如果 变量$title 和$txt 都为 TRUE,即都不为空,则执行花括号内的代码。*/ 05 $txt=nl2br($txt); /* $txt 变量的值经
过函数 nl2br()处理后放回到$txt 变量 中。关于 nl2br()函数,PHP 手册是这么解释的:Inserts HTML line breaks before all newlines in a string . Returns string with '
' inserted before all newlines . Example: Output:
foo isn't
bar
整句的意思是把文本(string)的换行符 ”\n” 转换成
HTML 代码中的换行符
。保证在文本中发表的留言能在网页中按正常格式显示。*/
xy968
PHP 学习之旅 06 file_put_contents(__FILE__,"
$title jllkey@gmail
".date("Y-m-d
H:i:s")."
$txt
",FILE_APPEND); /* 函数 file_put_contents()在 PHP5 手 册 中 的 解 释 : 将 一 个 字 符 串 写 入 文 件 (PHP 5) 。 格 式 : int file_put_contents ( string filename, string data [, int flags [, resource context]] ) 。 和依次调用 fopen(), fwrite() 以及 fclose() 功 能一样。 参数: Filename 要被写入数据的文件名。 Data 要写入的数据。类型可以是 string,array 或者是 stream 资 源(如上面所说的那样) 。 Flags flags 可以是 FILE_USE_INCLUDE_PATH,FILE_APPEND 和/ 或 LOCK_EX ( 获 得 一 个 独 占 锁 定 ), 然