该应用涉及知识点:
- 简单的web设计
- 各种PHP函数的使用
- 全局了解一个项目从设计到开发的过程
这个blog系统的基本功能:
- 显示日志内容
- 发布日志
- 管理日志(删除/编辑日志)
- 用户的登陆和退出
- 日志的归档显示
需要创建的页面如下:
- 显示日志内容的页面
- 发布日志内容的页面
- 编辑日志内容的的页面
- 删除日志内容的页面
- 用户登录的页面
1.实现blog文章的显示
实现从文件中读取日志的内容并将其显示在页面上
(1)先建立一个文本文件
路径如下
(2)编写php程序读出文件内容,并向浏览器输出
(这里注意一下,你打开的文档文本的编码方式要和php文件的编码方式相同,都是utf-8)
<?php
header("content-type:text/html;charset=utf-8");
$file_name = 'content/201112/1.txt'; //存储日志内容的文件
if(file_exists($file_name)){ //打开文件前先判断文件是否存在
$fp = @fopen($file_name, 'r'); //以只读的方式打开文件
if($fp){
flock($fp, LOCK_SH); //文件加锁
$result = fread($fp, 1024); //读出文件内容并以字符串的形式赋给变量result
}
flock($fp, LOCK_UN); //解锁文件(无论共享或独占都用lock_un解锁)
fclose($fp);
}
//将字符串内容按 | 分割后存入数组中
$content_array = explode('|', $result);
//以下的代码将日志的内容输出到浏览器
echo '<h1>我的blog</h1>';
echo '<b>日志标题</b>'.$content_array[0];
echo '</br><b>发表时间</b>'.date('Y-m-d H:i:s',$content_array[1]);
echo '<hr>';
echo $content_array[2];
?>
(3)通过url向程序传入参数的实现
上面的那个代码只能读取某特定时刻的日志文件,这肯定是不能满足实际需要的。显示blog内容的程序应该能够访问每一天的日志文件,这可以通过URL向程序传入参数实现,不同的参数值代表不同的时间,程序根据这个参数值的不同,完成访问不同目录下的日志文件,并获取该文件中的数据。比如,传入参数entry=20112-02,表示访问目录201112下的02.txt文件。从这个参数可以看出,它的值实际反应出了日志路径。
<?php
header("content-type:text/html;charset=utf-8");
if (!isset($_GET['entry'])) {
echo "请求参数错误";
exit();
}
$path = substr($_GET['entry'],0,6); //字符串201112-02的前6位代表的是日志的存储目录201112
$entry = substr($_GET['entry'],7,9); //日志文件名称
$file_name = 'content/'.$path.'/'.$entry.'txt'; //拼接出完整的日志路径
if (file_exists($file_name)) { //判断文件是否存在
$fp = @fopen($file_name,'r'); //以只读的方式打开文件
if($fp){
flock($fp, LOCK_SH); //文件加锁
$result = fread($fp, 1024); //读出文件
}
flock($fp, LOCK_UN); //解锁文件
fclose($fp); //关闭文件
}
//将字符串内容按 | 分割后存入数组中
$content_array = explode('|', $result);
//将日志输出
echo "<h1>我的blog</h1>";
echo '<b>日志标题</b>'.$content_array[0];
echo '</br><b>发表时间</b>'.date('Y-m-d H:i:s',$content_array[1]);
echo '<hr>';
echo $content_array[2];
?>
(4)完善用户页面
就大概写个html页面
2.实现blog文章的添加功能
在页面增加一个含有文本框和提交按钮的html页面,并以add.php保存
<?php
header("content-type:text/html;charset=utf-8");
$ok = true;
if(isset($_POST['title']) && isset($_POST['content'])){
$ok = true;
$title = trim($_POST['title']); //获取日志标题 并去除字符串两侧的空白字符
$content = trim($_POST['content']); //获取日志内容
$date = time(); //date()第二个参数默认是时间戳,既time()的返回值
$blog_str = $title.'|'.$date.'|'.$content; //将上述内容合并成字符串
//echo $blog_str;
$ym = date('Ym',time());
$d = date('d',time());
$time = date('His',time());
$folder = 'content/'.$ym; //根据年月设置目录名
$file = $d.'-'.$time.'txt';//根据时间和日来设置文件名
$filename = $folder.'/'.$file;
$entry = $ym.'-'.$d.'-'.$time;
echo $entry;
if(file_exists($folder)==false){
if(!mkdir($folder)){
//$ok=false;
//$msg='<font color="red">创建目录异常</font>';
}
}
$fp = @fopen($filename,'w');//打开文件
if($fp){
flock($fp,LOCK_EX);//要取得独占锁定(写入的程序)
$result = fwrite($fp,$blog_str);//写入文件
$lock = flock($fp,LOCK_UN);
fclose($fp);
}
if(strlen($result)>0){
//$ok=false;
$msg='日志添加成功,<a href="post1.php?entry='.$entry.'">查看该文章</a>';
echo $msg;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>my blog</title>
<meta charset="utf-8">
<link type="text/css" rel="stylesheet" href="css/style.css"/>
</head>
<!-- javascript -->
<script type="text/javascript">
</script>
<body>
<div class="containor">
<div class="head">
<h1>MY BLOG</h1>
<div class="title">
<h4>在这里自定义内容....</h4>
</div>
</div>
<div class="main">
<!-- 左板块 -->
<div class="left">
<div class="blog_entry">
<div class="blog_title">
<p><strong>添加新的日志</strong></p>
</div>
<div class="blog_body">
<div class="blog_date"></div>
<table border="0">
<form method="POST" action="add.php">
<tr><td>日志标题:</td></tr>
<tr><td><input type="text" name="title" size="100"></td></tr>
<tr><td>日志内容:</td></tr>
<tr><td><textarea name="content" style="resize:none;" cols="140" rows="20"></textarea></td></tr>
<tr><td><input type="submit" value="提交"></td></tr>
</form>
</table>
</div>
</div>
</div>
<!-- 右板块 -->
<div class="right">
<div class="sidebar">
<div class="menu_title">
关于<br>
</div>
<div class="menu_body">
关于内容
</div>
</div>
</div>
</div>
<!-- 底部 -->
<div class="footer">
<h5>copyright 2018</h5>
<h5>xxxxxxxxx</h5>
</div>
<!-- end -->
</div>
</body>
</html>
点击查看该文章
3.实现登录功能
已经完成了blog的浏览和添加功能,现在做用户的登录和退出功能。
用户的登录需要密码和用户名,这里将用户的用户名和密码配置到php文件里,登录程序将用户输入的和配置文件里的用户名和密码进行比较。建立一个auth.php文件,存放在blog系统的config目录下。
<?php
$auth = array();
$auth['user'] = 'admin';
$auth['passwd'] = '12345';
?>
emmmmm放弃了
中间遇到了一点困难,因为对本地的文件操作,用编程语言创建文件和文件夹,打开文件什么的不喜欢。。就不想操作,也就不熟悉,等国庆再回头看一下。