PHP实现简易blog的制作


Posted in PHP onOctober 24, 2016

最近,有时间看了点PHP的代码。参考PHP100教程做了简单的blog,这里面简单的记录一下。

首先是集成环境,这里选用的WAMP:http://www.wampserver.com/en/

首先通过,phpMyAdmin创建一张blog表。

PHP实现简易blog的制作

纯界面操作,过程比较简单,需要注意的是id是主键,并且设置auto_increnent 选项,表示该字段为空时自增。其它字段就比较随便了,注意类型和长度即可。

创建数据连接    

在./wamp/www/blog目录下创建conn.php文件。

<?php

@mysql_connect("127.0.0.1:3306","root","") or die("mysql数据库连接失败");
@mysql_select_db("test")or die("db连接失败");
mysql_query("set names 'gbk'");

?>

mysql默认用户名为root,密码为空,这里创建的blog在test库中,所以需要连接test库。

添加blog                         

在./wamp/www/blog/目录下创建add.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<hr>


<?php
include("conn.php"); //引入连接数据库

if (!empty($_POST['sub'])) {
  $title = $_POST['title']; //获取title表单内容
  $con = $_POST['con'];   //获取contents表单内容
  $sql= "insert into blog values(null,'0','$title',now(),'$con')";
  mysql_query($sql);
  echo "insert success!";

}

?>

<form action="add.php" method="post">
  title  :<br>
  <input type="text" name="title"><br><br>
  contents:<br>
  <textarea rows="5" cols="50" name="con"></textarea><br><br>
  <input type="submit" name="sub" value="submit">
  
</form>

这段代码分两部分,上部分是PHP代码,include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。

然后,判断表单中name='sub'的内容不为空的情况下,将获取表单的内容,然后执行$sql 语句,null 表示id为空(自增),now()表示取当前日起,$title和$con取表单中用户提交的内容。最后eche 插入成功的提示。

下半部分就是一段简单的HTML代码了,用于实现一个可以blog表单提交的功能。

创建blog的首页                         

在./wamp/www/blog/目录下创建index.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<br><br>
<form action="" method="get" style='align:"right"'>
  <input type="text" name="keys" >
  <input type="submit" name="subs" >
</form>
<hr>

<?php
include("conn.php"); //引入连接数据库
  
  if (!empty($_GET['keys'])) {
    $key = $_GET['keys'];
    $w = " title like '%$key%'";

  }else{
    $w=1;
  }

  $sql ="select * from blog where $w order by id desc limit 5";
  $query = mysql_query($sql);
  
  while ($rs = mysql_fetch_array($query)) {


?>
<h2>title: <a href="view.php?id=<?php echo $rs['id']; ?>"><?php echo $rs['title']; ?></a>
  | <a href="edit.php?id=<?php echo $rs['id']; ?>">edit</a> 
  | <a href="del.php?id=<?php echo $rs['id']; ?>">delete</a> |
</h2>
<li>date: <?php echo $rs['data']; ?></li>
<!--截取内容展示长度-->
<p>contents:<?php echo iconv_substr($rs['contents'],0,30,"gbk"); ?>...</p> 
<hr>

<?php

};

?>

该页面包含有的功能还是比较多的。

首先是一个搜索表单,通过if判断搜索表单的内容是否为空,如果不为空,通过输入关键字匹配文章的标题并显示结果;如果为空查询所有blog内容,并循环显示每一篇文章的标题、日期、正文。点击标题会链接到该篇blog的详细页面。每一篇文章提供“编辑”和“删除”功能。

mysql_query()用于执行sql语句。mysql_fetch_arry()将返回的数据生成数组,这样就可以像操作数组一样,操作数据库中的每一条数据了。

然后是正文的显示,通过 iconv_substr() 函数提取正文前30个字符。

查看blog                                                                                                            

在./wamp/www/blog/目录下创建view.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<hr>

<?php
include("conn.php"); //引入连接数据库

  if (!empty($_GET['id'])) {
    $id = $_GET['id'];
    $sql ="select * from blog where id='$id' ";  
    $query = mysql_query($sql);
    $rs = mysql_fetch_array($query);
    
    $sqlup = "update blog set hits=hits+1 where id='$id'";
    mysql_query($sqlup);
  }



?>
<h2>title: <?php echo $rs['title']; ?> </h1>
<h3>date: <?php echo $rs['data']; ?> 
click number: <?php echo $rs['hits']; ?></h3>
<hr>
<p>contents:<?php echo $rs['contents']; ?></p>

blog的正文实现比较简单,通过get请求获取blog的id,然后通过sql语句将该id对应的标题、日期和正文查询出来并显示。
并外一个小功能是显示了一个简单的计数器,每刷新页面,点击数加1。

编辑blog                                                                                                        

在./wamp/www/blog/目录下创建edit.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<hr>


<?php
include("conn.php"); //引入连接数据库

//获取数据库表数据
if (!empty($_GET['id'])) {
  $edit = $_GET['id'];
  $sql = "select * from blog where id='$edit'";
  $query = mysql_query($sql);
  $rs = mysql_fetch_array($query);
}

//更新数据库表数据
if (!empty($_POST['sub'])) {
  $title = $_POST['title']; //获取title表单内容
  $con = $_POST['con'];   //获取contents表单内容
  $hid = $_POST['hid']; 
  $sql= "update blog set title='$title', contents='$con' where id='$hid' ";
  mysql_query($sql);
  echo "<script>alert('update success.');location.href='index.php'</script>";

}

?>

<form action="edit.php" method="post">
  <input type="hidden" name="hid" value="<?php echo $rs['id'];?>">
  title  :<br>
  <input type="text" name="title" value="<?php echo $rs['title'];?>">
  <br><br>
  contents:<br>
  <textarea rows="5" cols="50" name="con" ><?php echo $rs['contents'];?></textarea><br><br>
  <input type="submit" name="sub" value="submit">
  
</form>

编辑blog的功能相对复杂一些。分两部操作,第一步先将blog的标题和正文查询出来,并显示到输入框。第二步将编辑好的内容再更新到数据库中。

删除blog   

在./wamp/www/blog/目录下创建del.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<hr>


<?php
  
  include("conn.php"); //引入连接数据库

  if (!empty($_GET['id'])) {
    $del = $_GET['id']; //删除blog
    $sql= "delete from blog where id='$del' ";
    mysql_query($sql);
    echo "delete success!";

  }

?>

最后是实现blog的删除功能,通过id将该条blog的查询出来并显示。

因为所有页面没有使用前端样式有美化,很丑就不贴图了。功能还算完美。在此记录,算做PHP学习的整理。

=======================================================

另外,虽然每个语言都有优缺点,这里还是忍不住要吐槽一下PHP的两个不好之处。

1、符号不好写, “$” 、“ ->” 、 “=>”。这些符号虽然并没有增加代码语法的理解难度。但敲起来具恶心。每次在打“$”符号的时候,都要眼看键盘按着shift键找4在哪儿。

2、php与html的混编在我看来也不是太优雅。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用php写的serv-u的web申请账号的程序
Oct 09 PHP
谈谈PHP语法(3)
Oct 09 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
PHP使用range协议实现输出文件断点续传代码实例
Jul 04 PHP
PHP实现事件机制的方法
Jul 10 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
Mar 25 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
详解Laravel服务容器的优势
May 29 PHP
php基于websocket搭建简易聊天室实践
Oct 24 #PHP
详解php中 === 的使用
Oct 24 #PHP
使用PHP免费发送定时短信的实例
Oct 24 #PHP
浅谈php和js中json的编码和解码
Oct 24 #PHP
php注册和登录界面的实现案例(推荐)
Oct 24 #PHP
php 使用html5实现多文件上传实例
Oct 24 #PHP
php 多文件上传的实现实例
Oct 23 #PHP
You might like
php 判断字符串中是否包含html标签
2014/02/17 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
js日期联动示例
2014/05/02 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
python如何获取服务器硬件信息
2017/05/11 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
Python处理CSV与List的转换方法
2018/04/19 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
司机岗位职责说明书
2014/07/29 职场文书
师德师风个人整改措施
2014/10/27 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
2015年见习期工作总结
2014/12/12 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
Python Pandas解析读写 CSV 文件
2022/04/11 Python