放弃mysql,源码编译升级到mariadb

自从mysql被收购之后LNMP构架中的Mysql开始慢慢由mariadb来代替,甚至谷歌也迁移到mariadb了。最近升级了nginx到最新稳定版,接着又是升级php7.0正式版,干脆把mysql替换为mariadb最新版^^。

阅读全文

使用js生成二维码和使用php生成二维码

最近在研究二维码的生成,目前找到了javascript版本和php版本,总体来说php版本比javascript版的要稳定,而javascript版的更安全。

先来说说javascript版吧,其实就是一个jquery插件——jquery.qrcode,看了源码之后发现jquery.qrcode.js里面提供了2种生成二维码的机制:使用canvas或table。对于支持html5的浏览器使用canvas效率是非常高的,并且不会对服务器产生任何压力,客户端也不会有太多压力;可是如果为了兼容像IE8等浏览器,还是需要使用table方式。

阅读全文

php7.0正式版编译升级

昨天鸟哥在微博上宣布php7正式版发布,今天抽空源码编译升级安装了,目前在uderscore.php的测试中内存占用减小了6.7%,还算一个不小的进步。虽说是编译升级,还是遇到了不少问题,记录一下。

阅读全文

PHP瑞士军刀(php实用库)——underscore.php

之前写过几篇关于underscore.js的中文翻译,后来思考了一下,如果php中有underscore的移植版该多好啊,于是立刻上github上搜了一些,还真的发现不少。其中star排名第一的brianhaveri写的underscore.php和underscore.js最像,可惜他是4年前写的,好久没更新了。于是,我根据他给的英文手册学习了一下这个类库,果然又一次被underscore震撼住了,已经fork到我的仓库了,花了一个月的闲暇时间翻译为中文版。

阅读全文

PHP中final关键字误区

最近在php理论知识回炉的过程中,发现自己已经步入了不少误区,今天又遇到了一个:

final修饰的类不能被继承,final修饰的方法也不能继承咯——误区。

阅读全文

PHP中不使用第三方变量交换两个数字的值

在学习程序语言和进行程序设计的时候,交换两个变量的值是经常要使用的,通常做法是定义一个临时变量,然后通过赋值进行交换。

这种方式虽然效率不怎么样,但是非常容易理解,而且复用性特别到,无论是什么类型的变量都能交换。

阅读全文

深刻教训!IE限制跨域cookie存取终于解决了

很早以前在chrome上实现了使用js动态生成第三方网站的ajax登陆窗口,一开始只是自己用并未对其他浏览器兼容。直到今天在IE8上实现的时候发现表单能正常提交,但是登陆状态怎么也保存不了。同样的代码在chrome下是完全可以的,并且通过chrome的Network查看确定cookie写入成功。于是,使用httpwatch对IE进行抓包,发现IE也接收到后端发送过来的setcookie请求,然后就没有然后了,cookie根本就没保存!

阅读全文

使用php分析linux目录大小

平时喜欢使用linux命令来管理远程服务器,通常一条语句或是一个shell脚本就能搞定所有的事情,但是一旦涉及到数据库和web,shell命令就鞭长莫及了。例如,我们需要监控linux服务器各大目录的大小并存储到数据库中,使用php性能不一定高,而且大目录下检测耗时长。于是,打算使用shell命令生成目录的日志,然后php进行读取分析。主要耗时全在shell命令上,使用crontab由root用户执行,将各大目录的大写写入到www用户的目录下,然后通过php进行分析呈现给web用户,不会造成权限混乱的问题。

阅读全文