2009-11-15 73 views
0

最近我一直在尝试Rails,并且我开始喜欢respond_to。在PHP的Rails“respond_to”

是否有可能在PHP中做这样的事情?回应不同类型的请求。所以即使javascript被禁用也很容易实现替代方法。

+0

有没有一个特定的PHP框架,你在想什么?或者你在滚动你自己? – 2009-11-15 14:54:06

+0

是的!我正在创建一个学习框架。 – saint 2009-11-15 15:13:24

回答

3

您可以根据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做你所有的肮脏的工作。

希望这会有所帮助!

+0

+1我认为这将是一个更好的方法。 – Krule 2009-11-15 17:19:56

+0

这很有帮助,谢谢 – saint 2009-11-15 17:52:30

2

上次我在Rails中做了类似于respond_to的一些操作我使用Apache .htaccess RewriteRule为了将GET变量处理为php。就像这样:

RewriteEngine on 
RewriteRule (\d*\.?\d*?).(html|json|xml|txt) /file.php?format=$1 

我希望它至少有一点帮助。 祝你好运。

+0

不错,至少我现在有东西。谢谢! – saint 2009-11-15 15:52:14

相关问题