我正在尝试用我网站上的PubSubHubbub替换RSS轮询。我可以使用谷歌提供的订阅者库来发送订阅请求。从代码中看起来它通过cURL发送一个post请求,其中包含RSS URL和回调URL。
所以这就是我需要指导的地方:
为了完成订阅请求,我的回调URL必须接收GET请求,然后回复GET请求中的值以及200响应。如何从GET请求中获取参数?回声是通过cURL再次完成的吗?如果是的话,哪个选项应包括200响应?
答案 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问题而不是之前。