最近我一直在尝试Rails,我开始喜欢respond_to。
是否可以在PHP中执行类似的操作?,响应不同类型的请求。因此,即使禁用了javascript,也很容易实现替代方式。
答案 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
我希望它至少有一点帮助。 祝你好运。