大二的时候想要开一个自己的博客,可是想了想也没什么可写的,然后一直拖拖拖,还是不知道写什么,“建一个自己的博客”也成了一句空话。拖了整整一年,到了大二暑假,开始设计博客;
本以为要考虑很多程序逻辑设计,数据库设计,担心写一半发现错误只能重写;但是,到最后做出来感觉还是挺简单的,没什么特别复杂的地方;
绝大多数人用的博客都是别人的代码,所以如果自己写代码搭建博客网站,是不是很high、big、up呢?
话不多说,直接干货:
富文本编辑器就是那种你可以像word一样在里面编辑文字的东西。还不清楚?如果你也用csdn写博客并且用的不是markdown编辑器,那你写博客时用的就叫做“富文本编辑器”。
我用的是simditor,挺简洁的;
在html中调用说明文档里的某个函数可以得到编辑器中内容的html代码。
示例:
我是
xiaowu
12345678910
就会得到:我是
xiaowu
12345678910
还有是本地图片上传的问题,这个编辑器的图片上传功能文档写的有点少,试了几种方法才成功;
图片上传接口代码:
if ($_FILES["fileData"]["size"] < 2048000) {
$type = $_FILES["fileData"]["type"];
if (($type == "image/jpeg") || ($type == "image/png") || ($type == "image/gif") || ($type == "image/x-ms-bmp")) {
if (!$_FILES["fileData"]["error"]) {
$new_file = "imgUpload/" . date('Ymd', time()) . "/";
if (!file_exists($new_file)) {
mkdir($new_file, 0700, true); //检查是否有该文件夹,如果没有就创建并给予最高权限
}
$new_file = $new_file . time() . "." . substr($type, 6);
move_uploaded_file($_FILES["fileData"]["tmp_name"], $new_file);
$array = ["success" => true, "file_path" => "{$new_file}"];
} else {
$array = ["success" => false, "msg" => "上传遇到问题,请重试!"];
}
} else {
$array = ["success" => false, "msg" => "请重新上传——图片格式应为:jpg/png/gif/bmp"];
}
} else {
$array = ["success" => false, "msg" => "请重新上传——图片大小不能大于2M"];
}
echo json_encode($array); //返回json格式结果
这样编辑博客基本没有问题了。
数据库开一张表即可,设置‘标题’、‘内容’、‘长度’、‘日期’、‘文章状态’、‘点赞数’、‘点踩数’、‘浏览次数’、‘创作时间’及用户登录验证相关信息等字段;
保存博客尽量使用ajax,如果用跳转的方式感觉很反人类呀;后端在进行保存处理前要对文章id、题目、创建时间、作者等信息进行验证,防止别人恶意修改不是自己的文章;
还有就是如何去掉内容中的html标签而获取文章长度呢?可以使用php的库函数htmlspecialchars(),也可以使用js在浏览器端进行统计,建议选择后者,因为可以把计算压力分散给用户;
JavaScript正则代码:
<script>
String.prototype.strip = function(){
var reTag = /<(?:.|\s)*?>/g;
return this.replace(reTag,"");
}
script>
调用 内容.strip().length 方法即可得到文字长度。
个人中心根据‘作者’和登录信息字段从数据表中读出,可再根据‘文章状态’分为若干小组;
个人中心一般要设置修改题目、修改内容、发布文章、删除文章等功能(可根据自身需要增减),这些功能建议写在一个php文件中;
点击修改内容后跳转至富文本编辑器页,编辑器有根据提供的html代码显示内容的函数,将从数据库中读取的内容直接添加到函数内,编辑器内容区即可显示出对应文字和格式;
修改题目、发布文章、删除文章功能都是比较简单的,不再赘述。
把博客分为三个部分呈现,一部分是显示文章列表,一部分是显示文章内容,最后是显示其它信息(比如最近最火的文章、点赞数最多的文章等)。
到这里搭建一个博客也就差不多了,如果还有遗漏的细节,欢迎在评论区指出~
我的个性博客:http://hpu.lifanko.cn:81/gnosis/