@ 2011年11月29日

PHP 两个类方法和单实例实现

今天无意中发现两个平时很少用到的函数,做个笔记:

is_subclass_of() - Checks if the object has this class as one of its parents

get_called_class() - the "Late Static Binding" class name

首先 is_subclass_of,我以往在项目里面更常用操作符 instanceof 或者 is_a(这个在 5.0 被禁用又在 5.3 取消禁用警告的苦逼),但 is_subclass_of 有个优势在于,他的参数除了接受对象外,还可以接受类名(字符串),这样你就可以无需实例化对象就能判断继承关系了。

@ 2011年10月23日

Ubuntu Server 下编译 sphinx 的 xmlpipe2

在 Ubuntu Server 默认环境下编译安装 sphinx 竟然不支持 xmlpipe2 数据源,提示

WARNING: source 'index1': xmlpipe2 support NOT compiled in. To use xmlpipe2, install missing XML libraries, reconfigure, and rebuild Sphinx

在官方论坛里面找到答案。

@ 2011年10月22日

Sphinx xmlpipe2 MVA 属性定义

今天给 Damdon 做 Search Engine,用的是  sphinx 0.9.9 全文检索引擎,由于某些 Content 包含多个分类 (Category),因此需要使用 sphinx 的 MVA (multi-valued-attribute) 属性类型,我使用了 xmlpipe2 数据源

@ 2011年10月08日

Android检查服务器连接状态

最近在写 Android App,需要在启动时就检查服务器连接状态,当服务器连接失败(如服务器关机、网络无连接等情况)时,弹出提示框,并强行退出程序,其中使用到 java.net.InetAddress 来检查主机状况。

@ 2011年08月31日

Drupal 7 form 使用 File Field

在 D7 下由于整合了 CCK,只需要安装 Field Module 和 File Module 就能实现文件上传,然而由于 CCK 的字段数据结构太过复杂(每个 CCK field 都有一个定义表 field_config、实例表 field_config_instance 和字段数据表,同时文件 Field 也有一个文件表 file_managed),在项目里我只直接保存了文件目标路径 filename,提高性能同时也便于数据迁移。
@ 2011年05月30日

cron 下如何设置 PHP CGI 超时

最近在 Drupal 上写了一些 hook_cron,里面执行了一些长时间脚本(如采集、发邮件),然而尽管我在脚本里设置了 set_time_limit(0),到了 30 分钟左右脚本就会强行终止,找了一些资料,发现 set_time_limit 在 CLI 方式下可能无效,加入 ini_set('max_execution_time', 0) 后问题解决 :D
@ 2011年05月17日

让 cron 跑在命令行下 (Drupal 7)

今天在 Drupal 7 下写了个文章采集程序,并且部署成 cron 自动运行,官方的方法是使用 curl 或者 wget 等 HTTP 请求调用 cron.php,而这样会有可能因为某些意外原因造成错误,如 Web Server 挂了,HTTP Timeout 等,而且也不能即时地输出,通过修改 cron.php,我们可以直接在 crontab 里面调用了。

@ 2011年03月14日

如何 Flush 页面内容

最近在写一个 App Center 的 Demo,看了一下关于 Facebook Big-Pipe 的实现,很有意思,大家可以去翻阅下资料,这里不详细说了。

用这个函数在模板渲染时就可分段输出,且在当浏览器接收到每个响应段时即开始渲染,在用户的视角上的响应时间(TTI)将缩短一半(因为服务器和浏览器同时都在干活)。

@ 2011年02月08日

ImageMagick 图片扭曲之三 (Polar)

Polar 方法类似 Arc,经实验两个方法所能实现的效果都是相同的,差异是 Polar 是内圆弧是图片的上边,外圆弧是图片的下边,而 Arc 相反,内圆弧是图片的下边,外圆弧是图片的上边。Polar 的 $method 是 Imagick::DISTORTION_POLAR,$arguments 至少需要一个元素,表示外圆的半径。该值可设置两个特殊值,当为 0 时,表示半径为圆心到最近的边的距离 (即最小内接圆);当为 -1 时,表示半径为圆心到最大顶点的距离 (即最大外接圆)。第二个元素表示内圆的半径,默认为 0;第三个元素和第四个元素必须成对出现,表示圆心的坐标;第五个元素表示扇形开始的角度,默认为 -180;第六个元素表示扇形结束的角度,默认为 180。当第五第六个元素和不是 360 时,扭曲效果将不组成一个完整的圆。

imagick polar simple

@ 2011年02月07日

ImageMagick 图片扭曲之二 (Arc)

上一篇博文介绍了 ImageMagick 最简单的扭曲方法 SRT,实现了最简单的缩放-旋转-位移处理,今天继续讲述第二个扭曲方法。

顾名思义 Arc 就是圆弧的意思,$method 定义为 Imagick::DISTORTION_ARC,而 $arguments 至少设置一个元素,表示圆弧的角度,第二个元素默认为 0,表示圆弧旋转的角度,而第三和第四个参数分别表示外圆半径和内圆的半径,其默认值是按照 CLR (Centerline Radius - 我也不知其所以然) 来计算得出的。

imagick arc simple

© 2011 Bun Wong

本博客基于 Bun PHP Framework 构建 • 粤ICP备07036370号