Rails在PHP中“respond_to”

时间:2009-11-15 14:49:06

标签: php javascript ruby-on-rails ajax

最近我一直在尝试Rails,我开始喜欢respond_to。

是否可以在PHP中执行类似的操作?,响应不同类型的请求。因此,即使禁用了javascript,也很容易实现替代方式。

2 个答案:

答案 0 :(得分: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是这样一个功能的例子,它可以帮助你开始;否则PHP有一个content negotiation library可以为你完成所有肮脏的工作。

希望这有帮助!

答案 1 :(得分:2)

上次我在Rails中做了类似于respond_to的事情,我使用Apache .htaccess RewriteRule来处理GET变量到php。像这样:

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

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