QuickBox2D

Posted in Flash on January 22nd, 2010 by Adam

QuickBox2D是AS3二维物理引擎框架Box2D的简化版。可以快速生成二维物理碰撞效果,很容易上手。

QuickBox2D sample – wonderfl build flash online

这是Wonderfl.net的在线测试,很容易把它做成一个类似于用盘子端皮球的小游戏。有空玩一玩~

Tags: , ,

RewriteRule里正则表达式减号字符的顺序问题

Posted in 杂项 on January 20th, 2010 by Adam

在用URLRewrite的时候,PHP正则匹配(preg_match)的时候,常常有一个容易忽略的小问题:

有效:RewriteRule ([0-9a-zA-Z\+_\.\-]{3,})/$ /article\-$1.html [L]
无效:RewriteRule ([0-9a-zA-Z\-\+_\.]{3,})/$ /article\-$1.html [L]

仅仅是因为方括号内减号(-)字符顺序的不同,让正则匹配失效。
但这又不是普遍的问题,只是在个别虚拟主机上出现。

下面的解释可以帮我们释疑:

正则表达式通过使用元字符来编码在模式中,元字符不代表其自身,它们用一些特殊的方式来解析。
减号(-)字符可以在字符类中指定一个字符范围。例如,[d-m] 匹配了 d 和 m 之间的任何字符,包括两者。如果字符类中需要减号本身,则必须用反斜线转义或者放到一个不能被解释为指定范围的位置,典型的位置是字符类中的第一个或最后一个字符。

Tags: ,

Discuz7用firefox无法登录

Posted in PHP on January 19th, 2010 by Adam

Discuz论坛从5.5升级到6.0,然后再升级到7.0,升级过程很顺利,可是在FireFox3.5.7下用管理员或其它普通用户登录的时候,虽然显示登录成功,但是跳转后还是回到登录窗口。IE8下没有这个问题。

Tags:

PHP5成员重载错误: Indirect modification of overloaded property has no effect

Posted in PHP on January 14th, 2010 by Adam
PHP5成员重载的时候
Class Foo{
private $arr;
public function __get($key) {
if(isset($this->arr[$key])){
return $this->arr[$key];
}
}public function __set($key, $val) {
if(isset($this->arr[$key])){
$this->arr[$key] = $val;
}
}
}
$f = new Foo;
$f->test = 1;
出现如下错误:
Notice: Indirect modification of overloaded property Foo::$arr has no effect
根据Google结果:
[27 Sep 2007 8:16pm UTC] brjann at gmail dot com
It seems that declaring the getter as “public function &__get(){…}” does the trick. However, it took some googling to find.
php magic __set and __get
this one works as expected. Actually php interpreter seems to do same thing. Trying to get value if exists and change it. Problem is that when it takes this value there is no place to store it and rise this error. Trying to modify property in not existing array. Solution is to make this array available. Returning values by reference seems to work.
解决办法是给__get()加上引用传递&__get,
public function &__get($key) {
return $this->arr[$key];
}
$f->array['test'] = 1;
试图帮助函数找到引用被绑定的不存在的变量arr。但是这里存在没有调用__set的问题。
我的办法是$arr转为公有化,放弃__set。
public $arr;
$f->arr['test'] = 1;
Tags:

悲哀啊,如果Google关闭谷歌中国

Posted in Google与Idea, 窄多废话 on January 13th, 2010 by Adam

Google宣布考虑关闭Google.cn

我们认识到,这很可能意味着必须关闭Google.cn,并有可能我们在中国的办事处。

作为中国大陆的互联网从业人员,我们还可以对国内互联网抱有什么希望?难道这就是我们伟大祖国净化互联网,大力推进建设和谐世界的伟大成就?

面对GFW、网站备案、白名单、黑名单、文字狱…我们已经头痛不已,如今还能证明国内互联网尚存一线生机的谷歌中国也将不复存在,可悲啊!

中国互联网的希望在哪里?我看不到。都说互联网这个虚拟的世界是多么美好,可是我看到的只是真实社会一样的乌烟瘴气!

如今的环境,愈加恶劣,腥风血雨,希望各位混迹在互联网的同仁们好自为之。

更新:谷歌澄清不实的传言,否认已经关闭在中国的办公室和在中国的员工已经接到通知将于近期离职。

RSS Feed