在PHP中接收和处理GET请求

时间:2010-01-26 19:11:58

标签: php httpwebrequest

我正在尝试用我网站上的PubSubHubbub替换RSS轮询。我可以使用谷歌提供的订阅者库来发送订阅请求。从代码中看起来它通过cURL发送一个post请求,其中包含RSS URL和回调URL。

所以这就是我需要指导的地方:

为了完成订阅请求,我的回调URL必须接收GET请求,然后回复GET请求中的值以及200响应。如何从GET请求中获取参数?回声是通过cURL再次完成的吗?如果是的话,哪个选项应包括200响应?

2 个答案:

答案 0 :(得分:4)

这个非常简单的脚本应该是一个开始:

  echo $_GET["request_name"];

这将输出GET参数request_name并且(隐式地)发送200。

在回显之前显式声明内容类型也是一个好主意,以防止默认内容类型(通常是“text / html”)被踢入:

header("Content-type: text/plain");

请注意,在回显外部数据时,您可能需要首先清理输出 - 例如,如果输出格式为HTML,您可能需要执行echo htmlspecialchars($_GET["request_name"]);之类的操作来阻止Cross-Site Scripting

答案 1 :(得分:2)

最近在php-dev邮件列表上有一个关于此的帖子。您无法访问$ _GET超全局中的'hub.challenge'的原因是register_globals。基本上PHP在创建超全局之前清除任何参数名称。任何点都将转换为下划线。它希望在PHP 6中“固定”,但由于BC问题而不是之前。

Here's the thread about it.