0℃
2014年11月19日
⁄ php
⁄ 被围观 4,442 view+
在php中又两个方法都是在请求快结束的时候执行。方法名分别是 register_shutdown_function和fastcgi_finish_request。虽然执行的时机差不多,但是功能和应用场景不一样。比较两个方法的区别不是本文的重点。本文的重点的说明两个方法的应用场景。
1.register_shutdown_function
功能:
注册一个方法,当一个请求request执行完毕时,调用这个注册的方法。注意,哪怕在执行过程中发生error导致本次请求被强制退出,注册的方法也会执行。
应用场景一:
可以利用他的特性,捕获一些错误的一些详细信息。示例代码如下:...
fastcgi_finish_request, register_shutdown_function阅读全文
0℃
在关于不要重复造轮子的二三事一文中,交代了一些背景和想法。本篇则完全是一些干货,列举一些我用过或者即将会用的PHP轮子,基本都符合我对好轮子的定义:开源、许可证宽松、容易集成的PHP项目,目有些已经集成在EvaEngine里面,希望能帮助别人少走弯路。
日志还会陆续补充更新,同时欢迎推荐补充。
标记语言
PHP Markdown
License : New BSD License
Source Code
Allo点评:Markdown在轻量级标记语言中已经俨然有一统天下的趋势,PHP Markdown应该是目前以PHP编写的最好的Markdown解析器。当然一般来说使用Mark...
php扩展阅读全文
0℃
2013年11月04日
⁄ php
⁄ 被围观 8,473 view+
mac在升级到mavericks后,php原本从5.2升级到5.4,如果你之前安装的php扩展将无法使用,接下来如何在重新安装php扩展呢?
第一步先打开xcode同意下协议
第二步在终端中运行xcode-select --install
第三步在终端下运行如下命令
brew update
brew doctor
//如果现出来错误就按照提示解决下
//直到出现Your system is ready to brew.如果你的brew已经准备好了,没有错误或者警告信息
brew install zlib
第四步编译安装php-memcache
wget http://pecl.php.net/get/memcache-2.2.7.tgz
tar zxvf memcache-2.2.7.tgz
...
mavericks, memcache阅读全文
0℃
目前,对 HTML5 支持最好的是 Chrome,Safari 次之,Firefox 和 Opera 旗鼓相当,IE从IE9终于开始拥抱标准。
鉴于这种情况,假如你想使用Html5创建一个先锋体验式站点,现在的 HTML5 可以让你实现,假如你想大规模应用于实际项目,现在还为时过早。
主流浏览器对HTML5 图形和内嵌内容支持情况:
主流浏览器对HTML5 Web 应用程序的支持情况:
新的Doctype
只需要使用
<!DOCTYPE html>
尽管使用,即使浏览器不懂这句话也会按照标准模式去渲染,再也不用使用长长的永远无法记住的
<!DOCTYPE html PUBLIC &...
html5阅读全文
0℃
Supervisord是用Python实现的一款非常实用的进程管理工具,类似于monit。
Monit和Supervisord的一个比较大的差异是Supervisord管理的进程必须由Supervisord来启动,Monit可以管理已经在运行的程序。
Supervisord还要求管理的程序是非Daemon程序,Supervisord会帮你把它转成Daemon程序,因此如果用Supervisord来管理Nginx的话,必须在Nginx的配置文件里添加一行设置Daemon off让Nginx以非Daemon方式启动。
在工作中经常会碰到要写一些守护进程,简单做法放入后台:
#nohup python xxx.py &
偶尔这么做还可以接...
supervisord, 进程管理阅读全文
0℃
0℃
2013年09月10日
⁄ python
⁄ 被围观 3,995 view+
尽管并非每个你写的Python程序都需要严格的性能分析,但了解一下Python的生态系统中很多优秀的在你需要做性能分析的时候可以使用的工具仍然是一件值得去做的事。
分析一个程序的性能,最终都归结为回答4个基本的问题:
程序运行速度有多快?
运行速度瓶颈在哪儿?
程序使用了多少内存?
内存泄露发生在哪里?
下面,我们将使用一些优秀的工具深入回答这些问题。
使用time工具粗糙定时
首先,我们可以使用快速然而粗糙的工具:古老的unix工具time,来为我们的代码检测运行时间。
$ time python yourprogram.py
r...
python, 性能分析阅读全文
0℃
2013年09月02日
⁄ php
⁄ 被围观 7,703 view+
写了一段很简单的代码示例,却发现运行起来速度很慢,出现性能问题的代码量并不大,排除了IO问题以后,写了一段测试代码,果然问题很快重现。
<?php
$y="1800";
$x = array();
for($j=0;$j<2000;$j++){
$x[]= "{$j}";
}
for($i=0;$i<30000;$i++){
if(in_array($y,$x)){
continue;
}
}
?>
[root@xp trace]# time php test.php
real 0m4.116s
user 0m4.070s
sys 0m0.028s
可以看出时间耗掉了4秒,下面用strace跟踪没拿到什么有效信息。
[root@xp trace]# ...
ltrace, strace, 代码跟踪阅读全文
0℃
2013年07月31日
⁄ php
⁄ 被围观 7,136 view+
用于图片裁剪。有以下特点:
1.能进行人脸识别。图片中有人脸,将自动视为人脸区域为重要区域,将不会被裁剪掉。
2.自动识别其它重要区域。如果图片中未识别出人脸,则会根据特征分布计算出重区域。
总而言之,自动识别图片中的重要区域,并且在图片裁剪时保留重要区域。
目前已经用于一淘玩客
效果演示:
原图:
常规从中间截取为 400 * 225 大小大图片。效果如下:
使用tclip裁剪图片效果如下:
安装步骤
源码下载
opencv2 下载地址 http://www.opencv.org.cn/index.php/Download
安装opencv2
此扩展依赖于o...
tclip, 图片裁剪阅读全文
0℃
2013年07月25日
⁄ js
⁄ 被围观 12,907 view+
JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道。
1.如何判断是否为移动终端 利用正则match
匹配navigator.userAgent是否含有字符串AppleWebKit*****Mobile
安卓qq浏览器HD版 只有AppleWebKit
2手机语言版本的判断
使用navigator.browserLanguage 便可得出windows phone语言版本,...
js判断是否客户端阅读全文