PHP中的RESTful:在url中获取编码参数

时间:2013-03-22 22:20:50

标签: php rest encoding

我正在RESTful中构建PHP API。我想让用户以3种不同的编码(json,xml和rss)显示任何结果。

以下是用户123456873的GET请求示例:

 - GET /user/123456873.json -> Json
 - GET /user/123456873.xml -> xml
 - GET /user/123456873.rss -> rss

如何使用PHP获取URL中包含的编码参数(.json / .xml / .rss)?

3 个答案:

答案 0 :(得分:1)

您正在寻找重写引擎。继续阅读:http://en.wikipedia.org/wiki/Rewrite_engine

对于Apache来说,这可能很有趣:http://net.tutsplus.com/tutorials/other/a-deeper-look-at-mod_rewrite-for-apache/

答案 1 :(得分:0)

不同服务器上的解决方案有所不同,但一般情况下,即使路径未以.php结尾,您也需要将其配置为服务PHP 这样,PHP应用程序就可以解析路径并决定如何处理它。

对于Apache,这可以通过重写模块来完成。谷歌告诉我你应该阅读本指南:http://www.logon2.com.au/blog/archive/web-design/php-apache-mod-rewrite-tutorial/

答案 2 :(得分:0)

以下是解决方案:

通过.htaccess中的mod_rewrite重写网址:

RewriteEngine on
RewriteRule ^(.*)$ api.php?handler=$1 [L,QSA]

/user/123487364.json -> api.php?handler=user/123487364.json

在api.php中:

$request = $_GET['handler']
$encoding = explode(".", $request); -> to get the encoding (array)
$parameters = explode("/", $encoding[0]); -> to get the parameters (array)