ThinkPHP自动获取关键词(调用第三方插件)
先按照下图路径放好插件

方法如下
- /**
- * 自动获取关键词(调用第三方插件)
- * @return [type] [description]
- * www.shouce.ren
- */
- public function keyword()
- {
- Vendor('autokeyword.AutoKeyword');
- $keyword = new \AutoKeyword();
- $str='自动获取关键词并发大数据我们大家好吃饭啦调用第三方插件';
- $title = trim($str);
- $keys=$keyword::discuz($title);
- var_dump($keys);
- }
插件源码:
AutoKeyword.php
- <?php
- /**
- * 分词
- * @author zhao jinhan <326196998@qq.com>
- *
- */
- class AutoKeyword
- {
- /**
- * 使用discuz词库
- * @param unknown_type $title
- * @param unknown_type $content
- */
- public static function discuz ($title = '', $content = '')
- {
- $subjectenc = rawurlencode(strip_tags($title));
- $messageenc = rawurlencode(strip_tags(preg_replace("/\[.+?\]/U", '', $content)));
- $data = @implode('', file("http://keyword.discuz.com/related_kw.html?title=$subjectenc&content=$messageenc&ics=utf-8&ocs=utf-8"));
- if ($data) {
- $parser = xml_parser_create();
- xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
- xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
- xml_parse_into_struct($parser, $data, $values, $index);
- xml_parser_free($parser);
- $kws = array ();
- foreach ($values as $valuearray) {
- if ($valuearray['tag'] == 'kw' || $valuearray['tag'] == 'ekw')
- $kws[] = trim($valuearray['value']);
- }
- // $return = '';
- // $dot='';
- // if ($kws) {
- // foreach ($kws as $kw) {
- // $kw = CHtml::encode(strip_tags($kw));
- // $return .= $dot.$kw ;
- // $dot = ',';
- // }
- // $return = trim($return);
- // }
- return $kws;
- }
- }
- /**
- * 简易自定义获取关键词
- * @param string $title
- * @param string $content
- * @return JSON
- */
- public static function simple($title = '', $content=''){
- $words = include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'words.php';
- $data = array();
- $max = 10; //最多匹配10个
- if($words){
- foreach((array)$words as $word){
- if(count($data) > $max){
- break;
- }else{
- if($title && preg_match('/'.$word.'/is', $title)){
- array_push($data, $word);
- }
- if($content && preg_match('/'.$word.'/is', $content)){
- if(!in_array($word, $data)){
- array_push($data, $word);
- }
- }
- }
- }
- }
- return array_unique($data);
- }
- }
words.php
- <?php
- /**
- * 词库(权重越高越靠前)
- */
- return array(
- 'php',
- 'mysql',
- 'web',
- 'html',
- 'js',
- 'jquery',
- 'sql',
- 'myisam',
- 'innodb',
- 'apache',
- 'nginx',
- 'yii',
- 'linux',
- 'cms',
- 'yiifcms',
- 'redis',
- 'memcache',
- 'explain',
- 'ueditor',
- 'kindeditor',
- 'api',
- 'w3c',
- '高性能',
- '大数据',
- '存储过程',
- '事物',
- '触发器',
- '索引',
- '并发',
- '编程',
- '算法',
- '排序',
- '安装包',
- '下载',
- '服务器',
- '手册',
- '指南',
- '文章',
- '图集',
- );
ThinkPHP自动获取关键词(调用第三方插件)的更多相关文章
- C#的Process类调用第三方插件实现PDF文件转SWF文件
在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来 ...
- phpcms 去掉默认自动获取关键词、自动提取第一张图片?
进入后台,内容--模型管理--管理模型,选择文章模型的字段管理,选择第13项内容--修改,然后把字段提示代码中的2个checked去掉就行了. <label><input name= ...
- Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用
一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了,它的复杂度远远大于纯粹的应用开发.首先必须要考虑的就是集成第三方SDK,支付这块渠道商已经帮你我们做好了,只需要按照文档对 ...
- ThinkPHP第十九天(Ueditor高亮插件、扩展函数载入load、静态缓存)
1.使用Ueditor编辑器,插入代码后,显示的时候高亮显示,需要调用Ueditor中的第三方插件third-party中的SyntaxHighlighter 调用方法: 引入CSS和JS文件,并调用 ...
- Flask框架 (四)—— 请求上下文源码分析、g对象、第三方插件(flask_session、flask_script、wtforms)、信号
Flask框架 (四)—— 请求上下文源码分析.g对象.第三方插件(flask_session.flask_script.wtforms).信号 目录 请求上下文源码分析.g对象.第三方插件(flas ...
- WebService学习总结(四)——调用第三方提供的webService服务
http://www.cnblogs.com/xdp-gacl/p/4260627.html 互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他 ...
- Cordova webapp实战开发:(6)如何写一个iOS下获取APP版本号的插件?
上一篇我们学习了如何写一个Andorid下自动更新的插件,我想还有一部分看本系列blog的开发人员希望学习在iOS下如何做插件的吧,那么今天你就可以来看看这篇文字了. 本次练习你能学到的 学习如何获取 ...
- <转>thinkphp自动验证无效的问题
新手入门thinkphp,试用自动验证表单输入数据功能,却发现怎么都不能调用自动验证,自动验证无效,原因竟是一个小细节的疏忽,学习一定要细心啊! Action方法: IndexAction下的adds ...
- C# 调用第三方DLL完整实例
C# 调用第三方DLL完整实例 分类: C/C++ 以下代码为本人在实际项目中编写的调用第三方DLL接口程序的完整代码. public class ExecuteDLL : Form { ...//忽 ...
随机推荐
- polya计数定理在ACM-icpc中的应用
[数学公式] PG(x1,x2,...,xn) = 1/|G| * ∑π∈G x1^b1 * x2^b2*...*bn^bn 其中π是1^b12^b2...n^bn型轮换 然后一般染色情况下x1= ...
- 基于win32的socket编程及程序实现
初步研究了win32平台的Windows Sockets,它是Microsoft Windows的网络程序设计接口,它是从Berkeley Sockets扩展而来的,以动态链接库的形式提供给我们使用. ...
- 在MacBook Air 上装Win10的,反反复复的失败过程。
这个月初,一个女性朋友托我帮她装电脑,往MacBook Air上面装Windows 系统,原因是windows用的习惯,用起来顺手.然后用脚趾头考虑了一下,就一口答应下来了.难道这就是一个标准程序员的 ...
- 7天学会spring cloud教程
按照官方的话说:Spring Cloud 为开发者提供了在分布式系统(如配置管理.服务发现.断路器.智能路由.微代理.控制总线.一次性 Token.全局锁.决策竞选.分布式会话和集群状态)操作的开发工 ...
- mac使用笔记
1.QQ多开 MAC中登录QQ后按CMD+N组合按键即可新打开一个QQ登录窗口 2.关闭左右摇晃鼠标放大 系统偏好设置>辅助功能>显示器,去掉“摇动鼠标以定位”前面的勾即可 3.使用ctr ...
- Bootstrap3.0学习第十三轮(导航条)
详情请查看http://aehyok.com/Blog/Detail/20.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...
- WordPress 常用数据库SQL查询语句大全
在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容等等.这个时候,使用SQL查询语句可以大大简化我们的工作量. 关于如何操作SQL查询语 ...
- JS中对象与字符串的互相转换
在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON ...
- 【BZOJ 1901】【Zju 2112】 Dynamic Rankings 动态K值 树状数组套主席树模板题
达神题解传送门:http://blog.csdn.net/dad3zz/article/details/50638360 说一下我对这个模板的理解: 看到这个方法很容易不知所措,因为动态K值需要套树状 ...
- Jquery-处理iframe的高度自适应
超级简单的方法,也不用写什么判断浏览器高度.宽度啥的.下面的两种方法自选其一就行了.一个是放在和iframe同页面的,一个是放在test.html页面的.注意别放错地方了哦. iframe代码,注意要 ...