2017/08/06 数据库 No Comments 按最接近当前时间排序 mysql sql查询 **sql按当前时间较近的进行排序 且 大于当前时间的优先排序** ```php 假设数据表: id domain visit_time 1 blog.fity.cn 1570550400 #2019/10/9 2 fity.cn 1567958400 #2019/9/9 3 www.fity.cn 1562601600 #2019/7/9 ``` ```php 假设今天是2019/8/6,希望排序顺序: id domain visit_time 2 fity.cn 1567958400 #2019/9/9 1 blog.fity.cn 1570550400 #2019/10/9 3 www.fity.cn 1562601600 #2019/7/9 ... 继续阅读 »
2017/08/04 安全 No Comments 记一次阿里云ECS DDOS攻击。。。 早上上班还不到一小时 发现生产环境主机突然无法访问且ping不同,初步考虑是否主机白名单被篡改,经查看阿里云相关统计报表判断为DDOS攻击,经过持续半小时左右时间终恢复,本文仅用于记录不做为解决方案。 ECS主机默认情况在遭受攻击(例如DDOS)时流量超过本机房设定的黑洞阈值时,阿里云会屏蔽ECS主机的外网访问。当服务器进入黑洞一段时间后,如果系统监控到攻击流量停止,黑洞会自动解封。 **遭受攻击时网络拥塞截图如下:** ![](https://www.fity.cn/usr/uploads/2017/08/20170804063126_30779.png) *很多时候遭受DDoS攻击事件感觉不是你能做什么,而是机房决定了其实你什么都做不了,内心是深深的绝望@_@。。。* **临时解... 继续阅读 »
2017/07/19 PHP/Python/Java No Comments tp_thinkphp_php检测上传图片中是否含脚本 #### 本文范例中是基于检测图片十六进制代码中是否包含``、`` 、``等脚本实现检测上传文件是否非法及包含木马脚本。 ```php class Upload { private static $image = null; private static $status = 0; private static $suffix = null; private static $imageType = array('.jpg', '.bmp','.gif','.png'); //允许的图片类型 private static $message = array( //文件上传错误信息 '0' => '没有错误发生... 继续阅读 »
2017/07/12 服务器技术 No Comments 2台机器之间的端口转发iptables ##### 2台机器之间的端口转发iptables方式实现,场景: 两台机器,A机器能正常访问,B机器不能直接被访问,所以希望用A机器进行端口转发间接访问B机器,大致思路: 路由器 ---- 指定端口nat到 ------- A机器---------iptables nat 到 ------------B机器的端口 >iptables -t nat -A PREROUTING -i em3 -p tcp --dport 5080 -j DNAT --to 192.168.0.230:80 (后面这个ip是B机器的ip加端口,前面的em3是A机器的数据经过的网卡 5080是访问A机器的5080端口就转发到后面机器来) >iptables -t nat -A POSTROUTING ... 继续阅读 »
2017/06/29 随想/其他 No Comments 学会思考,而不只是编程 中国人常说“授之以鱼不如授之以渔”。如果说教授编程是授之以鱼,那么教授计算机科学就是授之以渔。为什么说学习计算机科学比学会编程要重要得多?来听听 Yevgeniy Brikman 的解释。 现如今,似乎每个人都在学习编程:Bill Gates、Mark Zuckerberg 和 Chris Bosh 这些名人在 Code.org 网站上告诉人们每个人都拥有编程的能力;CoderDojo 项目在世界各地大张旗鼓;英国已经把编程作为小学官方课程。 不过,我认为这样有点误入歧途了。但请不要误会——我也确实认为代码能够让世界变得更美好——但编程本身并不是我们的目的。计算机和程序只是工具,它们是我们通向终点的桥梁。 我们真正的目标应该是教会人们如何思考。换句话说,我们应该教人们计算... 继续阅读 »
2017/06/29 PHP/Python/Java No Comments 百度主动推送API程序代码(PHP版) **百度自动推送代码(PHP版)** ```php $url = 'https://www.xxx.com'; // 你的网站URL地址 $token = '资源秘钥'; //在搜索资源平台申请的推送用的准入密钥,ziyuan.baidu.com普通收录-修改准入密钥查看token // 百度收录推送API链接地址 $api = "http://data.zz.baidu.com/urls?site=$url&token=$token"; // baidu文章收录推送 echo '百度收录自动推送:'; $file_path = "/news/{$id}.html"; //生成的新闻静态路径 $urls = array($url . $file_path,); //获取新闻推送地址... 继续阅读 »
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.建立一张数据表如下 ![](http://images2015.cnblogs.com/blog/1001334/201706/1001334-20170614004111743-584515005.png) 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 ... 继续阅读 »