2017/06/20 系统架构 No Comments 全文检索:sphinx_elasticsearch_xunsearch选型分析 全文检索:sphinx_elasticsearch_xunsearch选型分析 #### 开发语言: Sphinx和Xunsearch是基于C/C++开发、Elasticsearch基于java开发 #### MySQL数据导入及索引生成: Sphinx > Elasticsearch > Xunsearch Sphinx跟RDBMS(特别是MYSQL)绑定的特别紧密,在导入MySQL数据生成索引时,从易用性、可靠性、速度上来看,Sphinx优于ElasticSearch。Sphinx真的很快。ElasticSearch官方文档上,数据都是使用RESTful接口一条一条插入的,也就是增量更新。有个bulk接口,可以批量导入、大幅加快速度 #### 增量更新支持: --... 继续阅读 »
2017/06/15 WEB前端 No Comments JQuery 插件的编写 #### jquery的插件机制 为了方便用户创建插件,jquery提供了$.extend()和$.fn.extend()方法。 $.extend(object) ,用于扩展jQuery类本身,也就是用来在jQuery类/命名空间上增加新函数,或者叫静态方法. 例如 jquery内置的 ajax方法都是用$.ajax()这样调用的,有点像 “类名.方法名” 静态方法的调用方式。 ``` $.extend({ minValue: function (a, b) { // 比较两个值,返回最小值 return a < b ? a : b; } }); //调用 var i = 100; j = 101; var min_value ... 继续阅读 »
2017/06/15 PHP/Python/Java No Comments Python3.6 urllib获取网页html函数 ### Python3.6 urllib获取网页内容函数 ```python ''' 获取网页html内容函数 @param str url 获取目标url地址 @param list post_data 页面post请求数组参数(get请求忽略) @return str html ''' def get_page_html(url,post_data={}): headers = { 'Accept': 'application/json, text/plain, */*', #'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9,e... 继续阅读 »
2017/06/15 Blog相关 No Comments bo-blog转换zblog程序代码-基于thinkphp5 ```php //转换分类 public function convert_cate(){ $page = input('page') ? input('page') : 1 ; $pageSize = 10; $start = ($page-1)*$pageSize; $where = array(); $info = \think\Db::table('blog_categories')->where($where)->limit($start . ','.$pageSize)->order('cateid asc')->select(); //dump($info);die; ... 继续阅读 »
2017/06/14 PHP/Python/Java No Comments TP5 save遍历更新,过滤相邻重复字段,问题汇总 TP5中在model中使用save方法遍历更新字段,会自动过滤掉相邻且值重复的字段,在TP5开发手册中也没有提到这一茬,虽然官方有给遍历更新的例子,但是普通的写法程序也不会报错,可能几千条数据中会过滤一两个字段,让开发者很难察觉到错误。而且也实在想不通过滤掉重复的字段的意义在哪里,测试内容如下: 测试准备工作如下: 1.建立一张数据表如下  2.控制器代码如下: public function save(){ $model = model('Foo');... 继续阅读 »
2017/06/14 PHP/Python/Java No Comments PHP垃圾回收与内存管理基本原理 ##### 内存管理机制了解: >var_dump(memory_get_usage());//获取内存方法,加上true返回实际内存,不加则返回表现内存 $a = "https://www.fity.cn"; var_dump(memory_get_usage()); unset($a); var_dump(memory_get_usage()); 输出: int 368752 int 368920 int 368752 可以直观的看出定义变量之后,内存增加,清除变量之后,内存恢复(有些可能不会恢复和以前一样),好像定义变量时申请了一次内存,其实不是这样的,php会预先申请一块内存,不会每次定义变量就申请内存。PHP不像C语言那样,只有你显示的调用内存分配相关API才会有内存的分... 继续阅读 »
2017/06/14 PHP/Python/Java 1 Comments html无损截取_保留html标签 ```php /** * 字符串切割 * 功能:截取字符串(支持中文),如果字符串中包括html标签,截取的字符串则会保留完整的html标签 * @param string $string 输入字符串 * @param unknown $length 截取长度 * @param bool $mode 截取模式:0删去html标记(默认),1补齐html标记 * @param string $replace * @return string * @author 未来往事 * 说明: * 1.未考虑多字节字符,仅已字节做计数单位 * 2.未考虑可单独存在的标记 */ function html_substr($string, $length, $mode=0, $o... 继续阅读 »
2017/06/08 随想/其他 1 Comments 告别Bo-Blog~~~ 粗略算下使用Bo-Blog开源博客系统记录日志已6年12天时间之久,主要用于学习、记录、分享一些基础的内容,毕竟复杂的内容整理起来也比较麻烦:joy:,系统很简单综合性能也不错,对于一个只是期望简单用于记录的用户来说功能也相对够用了,不像WordPress那样的庞然大物。 遗憾的是Bo-Blog开源程序可以说是个人作品,09年之后官方不在有业余时间更新,尽管在使用过程中也修正了许多的问题、亦开发分享了几套主题,以此让他——Bo-Blog看起来更加像一个符合当前技术发展阶段的程序系统及主题风格,但即便如此,很多的基础结构及核心代码的局限从兼容扩展性及支持php7等应用组件方面来说并不能花少量时间得以改进,经慎重考虑后放弃了Bo-Blog程序,对老博客相关数据自己写了转换程序进行了完美转换及rewrit... 继续阅读 »
2017/05/28 安全 No Comments Nginx限制并发连接数和白名单配置-提升整体并发 背景/需求:恶意攻击、恶意采集、恶意刷页面秒杀、抢购并发连接限制、队列缓冲web下载带宽限制、web请求速率限制CC攻击Nginx连接数限制模块:说明:Nginx有很多模块、模块下面又分很多指令,下面就说说limit_conn_zone和limit_conn两指令limit_conn_zone模块指令配置Nginx http模块中添加http{ …………………… limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m; server{ …………………… }}PS:配置区域名称为perip、perserver,需要写在http里面;对于关系:key ... 继续阅读 »
2017/05/09 系统架构 No Comments ERP_ERM_CRM_OA企业办公或资源管理系统设计 #### ERP/ERM/CRM/OA企业办公系统或企业资源管理系统设计思考 ##### 一、科学、规范、合理的组织架构设计 1. 企业组织架构应是集团(隶属/所属公司)、多级部门或到小组的高度总结,便于分工明细利于晋级、协调、考核及各项工作的开展。 1. 科学、规范、简化、合理的组织架构设计,有利于指引系统的逻辑规划设计及未来各项数据各维度的正确输出统计。 1. 一套多级的部门数据表,再结合业务需求考虑系统各模块显示几级部门、是否支持提报预算、是否业务部门、是否职能部门等等。 **正例:**(组织架构) - 集团 -- 公司 -- 一级部门 -- 二级部门 -- ...... 如: (1)华宇集团 -- 集团总经办 -- 集团运营中心 -- 华东大区 -- 安徽公司 -- ..... 继续阅读 »
2017/04/28 PHP/Python/Java No Comments tp5 Excel表格导入_tp5导出Excel #### thinkphp5使用PHPExcel导入Excel、csv表格,thinkphp5表格导入导出 ##### tp5使用PHPExcel导入Excel表格文件: ```php PS:将PHPExcel扩展包放到vendor目录下 /vendor/PHPExcel.php /vendor/PHPExcel public function uploadUser(){ if(Request::instance()->isPost()){ $file = request()->file('file'); // 获取表单提交过来的文件 $error = $_FILES['file']['error']; // 如果$_F... 继续阅读 »
2017/04/28 PHP/Python/Java No Comments tp5分页 搜索条件不保留/失效处理方法 thinkphp5.0分页 搜索条件不保留/失效解决一般写法:分页跳转不包含搜索条件的$where = array(); $regionId = input('regionId/d'); $regionId && $where['regionId'] = $regionId; $num = input('num'); $num && $where['num'] = $num; $lists = Region:... 继续阅读 »
2017/04/19 PHP/Python/Java No Comments tp5 save遍历新增数据第二次变为update问题处理 thinkphp5 save循环新增数据第二次变为update问题解决$user->data($data,true)->isUpdate(false)->save(); 继续阅读 »
2017/04/09 WEB前端 No Comments 下拉刷新/上拉加载更多/上滑加载更多-移动端 **元素容器** `` **下拉载入更多处理方法** ```javascript var page=2;//从第二页请求数据 Zepto(function($){ $(window).scroll(function(){ if(($(window).scrollTop() + $(window).height() > $(document).height()-40)){ ajaxData(); } }); }) //定义ajax请求数据方法 可以考虑公用 function ajaxData(){ $.get("/mobile/get_list/news/",{page:page},function(result){ ... 继续阅读 »
2017/03/26 PHP/Python/Java No Comments 过滤微信表情/emoji表情 微信表情/emoji表情是个麻烦的东西,即使你能存储,也不一定能完美显示。在iOS以外的平台上,例如PC或者android。如果你需要显示emoji,就得准备一大堆emoji图片并使用第三方前端类库才行。即便如此,还是可能因为emoji图片不够全而出现无法显示的情况,在大多数业务场景下,emoji也不是非要不可的。我们可以适当地考虑干掉它,节约各种成本。 ```php public function get_filterEmoji($str){ $str = preg_replace_callback( '/./u', function (array $match) { return strlen($match[0]) >= 4 ? '' : $match[0]; ... 继续阅读 »