131个字符的php framework
在friendfeed上看到这个链接 —— The 140 Characters Webapp Challenge!,这个比赛要求用140个字符的代码造就一个web应用。
里头有36个程序可供投票,基本上全是脚本语言大杂烩:php,perl,ruby,javascript。实现的应用也是五花八门,有相册,类twitter,小游戏,甚至还有php代码框架?摘录如下:
CODE:
-
require __DIR__.'/c.php';
-
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
-
throw new Exception('Error');
-
$c();
这段代码利用了php5.3的一些新特性:
- __DIR__
- Anonymous functions
- ?:运算符
代码只有131个字符,由于代码极为简陋,安全性也是没得保障的,只能算一个程序的统一入口罢了。
如果用php 5.2来写这段代码,大概就是:
CODE:
-
require dirname(__FILE__).'/c.php';
-
if (!is_callable($c = @$_GET['c'] ? $_GET['c'] : create_function('', "echo 'Woah!';")))
-
throw new Exception('Error');
-
$c();
如果要让这段代码变得实用点,可以在$c前面加上一个前缀,这样安全性会有进一步提升,代码也会相应的增加若干字节。
作者: Volcano 发表于March 10, 2009 at 2:40 pm
qinyf 于 2009-03-10 @ 15:23:03 留言 :
* __DIR__
* Anonymous functions
* :?运算符
—————-
第三个的问号和冒号好像写反了?
Volcano 于 2009-03-10 @ 15:39:14 留言 :
笔误,已经更正
深空 于 2009-08-08 @ 02:01:11 留言 :
我没看出哪里有安全性问题?
Volcano 于 2009-08-08 @ 20:56:54 留言 :
比如你有个不希望被人调用的方法method_danger,如果没做任何控制的话,那么就很容易调用
深空 于 2009-08-22 @ 15:19:20 留言 :
原来如此,好久没用这种模式写代码了,都是过程化从头写到尾,赫赫,有时候基本都当脚本使了。
有空的话能加下Q聊聊吗?1382922