未来往事
放下浅薄和无知,靠的不是批判他人,而是自身的壮大和重建。 [2018年 第50周/共52周]

网页字体图标锯齿问题

当网页中的字体图标缩小时可能会遇到部分图标存在锯齿现象,可以通过CSS3属性webkit-text-stroke-width设置对象文字描边厚度进行简单处理:

  1. //消除锯齿
  2. -webkit-font-smoothing: antialiased;
  3. -moz-osx-font-smoothing: grayscale;
  4. -webkit-text-stroke-width: 0.2px;

未添加除锯齿样式 和 添加除锯齿样式后的前后对比:

PS:webkit-text-stroke是居中描边

+阅读全文

nginx防盗链(适用于图片与文件下载)

配置防盗链初衷是多为节约服务器带宽资源及简单对网站资源进行防盗。

一、普通防盗链

ngx_http_referer_module模块:可根据header中的referer信息屏蔽某些请求对网站或应用的访问,可以起到禁止直接访问网站static files的作用(防盗链或保护文件)。

  1. location ~ ^/img/.*.(gif|
......
+阅读全文

http跳转https_设置指定目录不跳转nginx rewrite

今天遇到需求是在访问url网址需要实现部分路径不进行https跳转,之前nginx设置的是对全部http url进行301跳转到https协议,具体实现的nginx rewrite如下:

  1. set $is_jump 0;
  2. if ( $request_uri ~ ^/post
......
+阅读全文

php openssl_encrypt无填充注意点

php openssl_encrypt OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING无填充加密失败或空白无输出注意事项:

在ios/java(Android)加密选择无填充模式如果不足128字节的话,调用方法会自动填充至128字节再进行加密,但php跟java中没有统一的填充标准,所以openssl_encrypt并没有默认填充,openssl_encrypt加密对数据长度有要求(这个与钥模有关),从而导致加密失败,这就需要手动填充。可以使用php函数str_pad函数。

......
+阅读全文

selenium chromedriver与chrome版本对应表(更新至v2.35)

selenium chromedriver与chrome版本对应表(更新至v2.35)

chromedriver版本 支持的Chrome版本
v2.35 v62-64
v2.34 v61-63
v2.33 v60-62
v2.32 v59-61
v2.31 v58-60
v2.30 v58-60
......
+阅读全文

记一次阿里云ECS DDOS攻击。。。

早上上班还不到一小时 发现生产环境主机突然无法访问且ping不同,初步考虑是否主机白名单被篡改,经查看阿里云相关统计报表判断为DDOS攻击,经过持续半小时左右时间终恢复,本文仅用于记录不做为解决方案。

ECS主机默认情况在遭受攻击(例如DDOS)时流量超过本机房设定的黑洞阈值时,阿里云会屏蔽ECS主机的外网访问。当服务器进入黑洞一段时间后,如果系统监控到攻击流量停止,黑洞会自动解封。

遭受攻击时网络拥塞截图如下:



......
+阅读全文

tp_thinkphp_php检测上传图片中是否含脚本

本文范例中是基于检测图片十六进制代码中是否包含<% ( ) %><? ( ) ?><script | /script >等脚本实现检测上传文件是否非法及包含木马脚本。

  1. class
......
+阅读全文

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 POST



......
+阅读全文

学会思考,而不只是编程

  中国人常说“授之以鱼不如授之以渔”。如果说教授编程是授之以鱼,那么教授计算机科学就是授之以渔。为什么说学习计算机科学比学会编程要重要得多?来听听 Yevgeniy Brikman 的解释。

  现如今,似乎每个人都在学习编程:Bill Gates、Mark Zuckerberg 和 Chris Bosh 这些名人在 Code.org 网站上告诉人们每个人都拥有编程的能力;CoderDojo 项目在世界各地大张旗鼓;英国已经把编程作为小学官方课程。

  不过,我认为这样有点误入歧途了。但请不要误会——我也确实认为代码能够让世界变得更美好——但编程本身并不是我们的目的。计算机和程序只是工具,它们是我们通向终点的桥梁。

  我们真正的目标应该是教会人们如何思考。换句话说,我们应该教人们计算机科学,而不只是编程。在这篇文章里,我将会解释这两者之间的区别,以及为什么在这两者当中选择正确的一方对于迈向成功来说如此重要。

  我们不妨先问自己一个问题:为什么我们要关心编程或计算机科学?

  欢迎来到真实的世界

+阅读全文

JQuery 插件的编写

jquery的插件机制

为了方便用户创建插件,jquery提供了$.extend()和$.fn.extend()方法。
$.extend(object) ,用于扩展jQuery类本身,也就是用来在jQuery类/命名空间上增加新函数,或者叫静态方法.
例如 jquery内置的 ajax方法都是用$.ajax()这样调用的,有点像 “类名.方法名” 静态方法的调用方式。

  1. $.extend({
  2. minValue: function (a, b) {
  3. // 比较两个值,返回最小值
  4. return a < b ? a : b;
  5. }
  6. });
  7. //调用
  8. var i = 100; j = 101;
  9. var min_value = $.minValue(i, j); // min_value 等于 100
+阅读全文

Python3.6 urllib获取网页html函数

Python3.6 urllib获取网页内容函数

  1. '''
  2. 获取网页html内容函数
  3. @param str url 获取目标url地址
  4. @param list pos
......
+阅读全文

TP5 save遍历更新,过滤相邻重复字段,问题汇总

  TP5中在model中使用save方法遍历更新字段,会自动过滤掉相邻且值重复的字段,在TP5开发手册中也没有提到这一茬,虽然官方有给遍历更新的例子,但是普通的写法程序也不会报错,可能几千条数据中会过滤一两个字段,让开发者很难察觉到错误。而且也实在想不通过滤掉重复的字段的意义在哪里,测试内容如下:

测试准备工作如下:

1.建立一张数据表如下

2.控制器代码如下:    

  1. public function save(){
  2. $model = model('Foo');
  3. for($i=1;$i<=20;$i++){
  4. $data['Hname'] = $i;
  5. $data['Hid'] = $i;
  6. $model->saveDatas($i,$data);
  7. }
  8. echo '遍历更新'.($i-1).'条数据';
  9. }

3.model代码如下:

+阅读全文

PHP垃圾回收与内存管理基本原理

内存管理机制了解:

var_dump(memory_get_usage());//获取内存方法,加上true返回实际内存,不加则返回表现内存
$a = “http://fity.cn“;
var_dump(memory_get_usage());
unset($a);
var_dump(memory_get_usage());
输出:
int 368752
int 368920
int 368752

可以直观的看出定义变量之后,内存增加,清除变量之后,内存恢复(有些可能不会恢复和以前一样),好像定义变量时申请了一次内存,其实不是这样的,php会预先申请一块内存,不会每次定义变量就申请内存。PHP不像C语言那样,只有你显示的调用内存分配相关API才会有内存的分配。也就是说, 在PHP中,有很多我们看不到的内存分配过程。隐式的内存分配点就有:
1.为变量名分配内存,存入符号表
2.为变量值分配内存
所以, 不能只看表象。别怀疑,PHP的unset确实会释放内存,但这个释放不是C编程意义上的释放,不是交回给OS。当我们调用内存分配相关API申请内存的时候,PHP并不是简单的向OS要内存,而是会像OS要一个大块的内存,然后把其中的一块分配给申请者,这样当再有逻辑来申请内存的时候,就不再需要向OS申请内存了, 避免了频繁的系统调用。详细推荐参考《深入理解PHP内存管理之谁动了我的内存

垃圾回收机制(Garbage Collector 简称GC):
+阅读全文

html无损截取_保留html标签

  1. /**
  2. * 字符串切割
  3. * 功能:截取字符串(支持中文),如果字符串中包括html标签,截取的字符串则会保留完整的html标签
  4. * @param string $string 输入字符串
  5. * @param unknown $length 截取长度
......
+阅读全文

告别Bo-Blog~~~

粗略算下使用Bo-Blog开源博客系统记录日志已6年12天时间之久,主要用于学习、记录、分享一些基础的内容,毕竟复杂的内容整理起来也比较麻烦twemoji-1f602,系统很简单综合性能也不错,对于一个只是期望简单用于记录的用户来说功能也相对够用了,不像WordPress那样的庞然大物。

......
+阅读全文