api/user
api/user/[id]
api/ad
api/ad/[id];
etc
是“用户”和“广告”实际的PHP文件?如果不是,我怎么能告诉(在我的PHP文件中)呼叫者称之为“用户”或“广告”?
关于如何创建一个宁静的Web服务的任何好教程?
大多数教程仅涵盖其他Web服务的基础知识.
解决方法:
好吧,对于简单的服务,你有一个脚本文件(例如名为index.PHP)作为调度函数的各种路径的入口点(当然可能在其他PHP文件中).
使用您在脚本名称后附加的路径之一调用它.
在脚本中,您可以使用$_SERVER [‘PATH_INFO’]来确定该路径.
您可以通过制作仅包含此内容的脚本来尝试这一点:
<?PHP
PHPinfo();
?>
如果您在Web服务器的浏览器中请求此脚本,您将看到所有相关数据打印在一个很好的列表中.向下滚动到PHP Variables部分以查看PATH_INFO.
见http://php.net/manual/en/reserved.variables.server.php
EDIT2:
此外,将访问方法限制为HTTP GET和POST会使您的生活更轻松,因为PHP具有$_GET和$_POST变量,但不是$_PUT / $_DELETE等.
但是,您可以使用指定方法的特殊变量发送POST请求,以便模拟PUT,DELETE,HEAD或OPTIONS操作(例如_method = PUT).
当支持除GET和POST之外的其他方法时,使用$_SERVER [‘REQUEST_METHOD’]来确定使用的方法,并从特殊的“文件”PHP://输入中读取与请求一起发送的数据(例如,使用file_get_contents(‘PHP: //输入’)).
编辑:
正如tdammers所述,Apache RewriteRules对于使您的URL变得漂亮很有用,在这种情况下隐藏脚本的名称(当然,取决于脚本的位置):
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/api/index\.PHP(/|$)
RewriteRule ^/api/(.*)$/api/index.PHP/$1 [QSA,L]