最近我一直在尝试Rails,并且我开始喜欢respond_to。在PHP的Rails“respond_to”
是否有可能在PHP中做这样的事情?回应不同类型的请求。所以即使javascript被禁用也很容易实现替代方法。
最近我一直在尝试Rails,并且我开始喜欢respond_to。在PHP的Rails“respond_to”
是否有可能在PHP中做这样的事情?回应不同类型的请求。所以即使javascript被禁用也很容易实现替代方法。
您可以根据Krule的建议调度文件名后缀,但我相信Rails通过检查HTTP Accept
标头的值(请参阅Wikipedia上的Content negotiation)来确定选择哪种内容类型。在伪码
$data = fetch_some_data();
switch (get_preferred_response_type($_SERVER['HTTP_ACCEPT'])) {
case 'text/html':
render_html($data); break;
case 'application/xml':
render_xml($data);
case 'application/json':
render_json($data);
// etc...
}
的get_preferred_response_type()
函数将具有解析Accept
头和返回客户端的优选的MIME类型。 Here就是这样一个函数的例子,它可以帮助你开始;否则有一个content negotiation library为PHP做你所有的肮脏的工作。
希望这会有所帮助!
上次我在Rails中做了类似于respond_to
的一些操作我使用Apache .htaccess RewriteRule为了将GET变量处理为php。就像这样:
RewriteEngine on
RewriteRule (\d*\.?\d*?).(html|json|xml|txt) /file.php?format=$1
我希望它至少有一点帮助。 祝你好运。
不错,至少我现在有东西。谢谢! – saint 2009-11-15 15:52:14
有没有一个特定的PHP框架,你在想什么?或者你在滚动你自己? – 2009-11-15 14:54:06
是的!我正在创建一个学习框架。 – saint 2009-11-15 15:13:24