今天试图给服务器装一个wikimedia,运行安装程序的时候,报错:

Fatal error:  Invalid opcode 153/1/8.

Google一下发现是php的扩展eaccelerator的问题。新版本的php执行匿名函数等新特性,而eaccelerator对它无能为力。eaccelerator停止开发有年头了,github上最新的commit还是两年前的,唉……

搞了半天没找到解决方案,后来发现在github这个库的讨论区中有人给出了方案。就是检查,如果碰到LAMBDA这种方式的函数,就直接跳过好了。

修改的代码在这里:
https://github.com/toddbc/eaccelerator/commit/e7dc802057e9916c0e6751b87511fc43a89c0c3a

直接改好的optimize.c在这里:
https://github.com/toddbc/eaccelerator/blob/e7dc802057e9916c0e6751b87511fc43a89c0c3a/optimize.c

把这个optimize.c覆盖掉eaccelerator下的同名文件,重新编译和安装该扩展,搞定。

PS:编译安装好后,记得清空eaccelerator的cache目录,否则老的代码由于缓存的关系还是会报错。

VN:F [1.9.22_1171]
Rating: 10.0/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)

 最近写PHP遇到一件挺郁闷的事情,用flie_get_contents获得一个网页的内容,如果网速很慢或下载这个页面需要很长的时间,就会经常超时,发出[function.file-get-contents]: failed to open stream: HTTP request failed! 错误。即使设置php.ini中的执行超时或者在代码中加入set_limit_time函数延长超时时间也无济于事。Google一下,找到了解决方法,需要在file_get_contents的参数中进行超时的设置,代码如下:

// Create the stream context 
$context = stream_context_create(array(
     'http' => array(
      'timeout' => 3000 //超时时间,单位为秒
     ) 
));  
// Fetch the URL's contents 
$contents = file_get_contents('http://sample.com', 0, $context);
VN:F [1.9.22_1171]
Rating: 8.6/10 (9 votes cast)
VN:F [1.9.22_1171]
Rating: +4 (from 4 votes)

image

一直在用QueryPath来作为PHP中解析HTML的DOM树的库,但一直发现QueryPath似乎太严格了,HTML结构里稍微有一点小错误就报错。一般都是用curl或者file_get_contents去获取页面内容,对方的html不严谨也是常有事情的。

于是转向了另外一个PHP的DOM解析库:PHP Simple HTML DOM Parser ,简介小巧,功能也不错,支持标准的CSS选择器。

需求和功能

  1. 需要PHP 5+
  2. 支持语法不严格的html写法
  3. 像jQuery一样操作html内容中的对象,支持标准的CSS选择器
  4. 只需要简单的一句代码就可以完成html内容的解析

使用起来非常简单,用str_get_html函数获取html对象后,直接使用find选择器进行各种操作即可,例如:

$html = file_get_html('http://www.google.com/');
$ret  = $html->find('div', 0);
$ret  = $html->find('.foo');
foreach($html->find('a') as $element) 
    echo $element->href; 
}

哇,就这么方便。熟悉jQuery的话,上手更快。基本的CSS选择器完全没有问题,更复杂一点的选择器操作CoCo还没有全面测试。有一个问题就是这个库获得url内容用的是file_get_contents也许对一些网站不太实用,可以直接改其源代码,使用curl库抓取页面,以获得更好的效果。

比较遗憾的是,从sourceforge上的日期看,似乎在2008底,这个库就停止开发了。

VN:F [1.9.22_1171]
Rating: 9.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)

恭喜牛总博客搬家,有了自己的独立域名。这下身板硬朗了,腰杆直了,不寄人篱下了,掌握自己博客的命运了。让我们期待看到更多牛式风格的好文章。

都说PostgreSQLMySQL要爽不少,那咱就试试呗。用了很多年的MySQL,本以为PostgreSQL也是差不多的东西,安装和使用的过程中才发现,事情不是想象的那么简单。

继续阅读

VN:F [1.9.22_1171]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

 

牛总一直劝说咱把WordPress的Links排序方法做成插件的形式。于是咱就花了一个晚上研究了一下WP的插件开发手册,然后花了几个小时做了自己的第一个WP插件:CoCo LinkSort。申请后几天,被Wordpress官方网站收录了。还可以使用他们的SVN系统来管理源代码,前台自动生成插件描述、下载、FAQ等页面,很酷。

继续阅读

VN:F [1.9.22_1171]
Rating: 8.8/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)