thinkphp5项目--个人博客(七)
thinkphp5项目--个人博客(七)
项目地址
fry404006308/personalBlog: personalBlog
https://github.com/fry404006308/personalBlog
一、标签部分(thinkphp框架中html中可以直接写原生的php)

视图
这是另一个位置相似的代码,加了span标签便于理解html和php的关系
<span class="writor">标签:
<?php
$arr=explode(',',$articleres['keywords']);
foreach($arr as $k => $v){
echo "<a href='#'>$v</a>";
}
?>
</span>
二、两个常用的string函数str_replace和explode
替换文章关键词中的中文逗号为英文逗号
'keywords'=>str_replace(',', ',', input('keywords')),
以英文逗号来截取文章
$arr=explode(',',$articleres['keywords']);
三、ThinkPHP where的使用
参考手册
普通查询
最简单的数组查询方式如下: $map['name'] = 'thinkphp';
$map['status'] = 1;
// 把查询条件传入查询方法
Db::table('think_user')->where($map)->select();
// 助手函数
db('user')->where($map)->select();
最后生成的SQL语句是
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
项目中用处
//相关文章
public function ralate($keywords,$id){
$arr=explode(',',$keywords);
static $ralateres= array();
foreach ($arr as $k => $v) {
//找相似关键词的文章
$map['keywords']=['like','%'.$v.'%'];
//自己相同的文章不能显示在这里,id不能相同
$map['id']=['neq',$id];
$tmp=db('article')->where($map)->order('id desc')->limit(8)->select();
$ralateres=array_merge($ralateres,$tmp);
}
//给$ralateres去重,因为不同关键词匹配的时候可能匹配到重复文章
// array_unique只能做一维的,所以我们用自己写的函数
// $ralateres=arr_unique($ralateres); return $ralateres;
}
四、同类文章推荐

找两篇文章的多个标签中能否有一个相同
//相关文章
public function ralate($keywords,$id){
$arr=explode(',',$keywords);
static $ralateres= array();
foreach ($arr as $k => $v) {
//找相似关键词的文章
$map['keywords']=['like','%'.$v.'%'];
//自己相同的文章不能显示在这里,id不能相同
$map['id']=['neq',$id];
$tmp=db('article')->where($map)->order('id desc')->limit(8)->select();
$ralateres=array_merge($ralateres,$tmp);
}
//给$ralateres去重,因为不同关键词匹配的时候可能匹配到重复文章
// array_unique只能做一维的,所以我们用自己写的函数
// $ralateres=arr_unique($ralateres); return $ralateres;
}
五、使用函数文件

thinkphp5项目--个人博客(七)的更多相关文章
- thinkphp5项目--个人博客(五)
thinkphp5项目--个人博客(五) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(八)
thinkphp5项目--个人博客(八) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(六)
thinkphp5项目--个人博客(六) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(四)
thinkphp5项目--个人博客(四) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(三)
thinkphp5项目--个人博客(三) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(一)
thinkphp5项目--个人博客(一) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(二)
thinkphp5项目--个人博客(二) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- 2015-2016-2 《Java程序设计》项目小组博客
2015-2016-2 <Java程序设计>项目小组博客 1451 完+美 java项目 守望先疯 JavaGroup 07_10_20_22 FromBottomToTop L.G.Su ...
- 团队项目系列博客 —— 在路上(之wampserver 修改根目录以及配置多站点以及修改端口号)
团队项目系列博客 -- 在路上(之wampserver 修改根目录以及配置多站点以及修改端口号) 标签(空格分隔): wampserver php 参考:参考文献1.慕课网.知乎.github 一.w ...
随机推荐
- ASP.NET-AJAX.FORM提交附件失败
尝试了不少时间在AJAX.FORM提交附件,发现完全不行,经过下面的这个博客的介绍,使用ajax.form.js插件提交成功,记录一下该博文网址和结论: 相关网址:http://www.cnblogs ...
- 洛谷 P2111 考场奇遇
P2111 考场奇遇 题目背景 本市的某神校里有一个学霸,他的名字叫小明(为了保护主人公的隐私,他的名字都用“小明”代替).在这次的期中考试中,小明同学走桃花运,在考场上认识了一位女生,她的名字叫小红 ...
- 字符串中连续出现最多的子串 & 字符串中最长反复子串
字符串中连续出现最多的子串 & 字符串中最长反复子串 字符串中连续出现最多的子串 & 字符串中最长反复子串,这两个问题都能够用后缀数组来表示,至于后缀数组能够參考编程珠玑P156:后缀 ...
- nodeJS npm grunt grunt-cli
1.安装好nodeJS后 ,一般都会把npm也安装好的.nodeJs集成npm的,可通过在cmd 分别运行 node -v和 npm -v来查看他们的版本,假设显示可说明可继续以下的操作 2.想安装g ...
- ActionBarActivity设置全屏无标题
新建的Activity继承自ActionBarActivity,设置全屏无标题本来非常easy的事,可是没想到app居然无缘无故的挂,要么就是白屏一片,要么就是黑屏.坑了我一个多小时.!! 原因是Ac ...
- 山东理工oj--1912--IP地址(水题)
IP地址 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 2011年2月3日,国际互联网名称与数字地址分配机构(ICANN) ...
- 高级程序员与CTO技术总监首席架构师
一.高级程序员 如果你是一个刚刚创业的公司,公司没有专职产品经理和项目经理,你就是公司的产品经理,你如果对你现在的开发员能力不满,那么你只需要的是一个高级程序员. 你定义功能.你做计划推进和管理,他可 ...
- HDU 2120 Ice_cream's world I【并查集】
解题思路:给出n对点的关系,求构成多少个环,如果对于点x和点y,它们本身就有一堵墙,即为它们本身就相连,如果find(x)=find(y),说明它们的根节点相同,它们之间肯定有直接或间接的相连,即形成 ...
- NodeJS学习笔记 (9)网络服务-https(ok)
模块概览 这个模块的重要性,基本不用强调了.在网络安全问题日益严峻的今天,网站采用HTTPS是个必然的趋势. 在nodejs中,提供了 https 这个模块来完成 HTTPS 相关功能.从官方文档来看 ...
- HDU 1043 Eight (A*算法)
题目大意:裸的八数码问题,让你输出空格的一条合法移动路径 首先利用康托展开对排列编号,可以预处理出排列,就不必逆展开了 然后利用A*算法求解 A*算法是一种启发式搜索,具体实现要用到优先队列/堆,不同 ...