如何使用PHP打开网页并接收其Cookie?
动机:我正在尝试使用feed43从非启用RSS的HighLearn网站(远程学习网站)创建RSS源。我找到了包含我需要解析的提要内容的网页,但是,它需要先登录。 幸运的是,登录可以通过GET请求完成,因此它就像fopen()ing“http://highlearn.website/login_page.asp?userID=foo&password=bar”一样容易。但我仍然需要获取我登录时生成的cookie ,将cookie传递给真实客户端(使用setcookie()可能?)然后重定向。
答案 0 :(得分:5)
对于服务器端HTTP客户端,您应该使用cURL模块。它允许您在多个请求中保留cookie。它还做了一些其他整洁的事情,比如捆绑请求(curl_multi)和透明地处理重定向。
在将会话返回给用户时,我认为这不可行。您需要能够覆盖其他域的cookie。这会导致大量安全问题,因此没有浏览器会实现它。
答案 1 :(得分:1)
我之前使用过Simpletest的Scriptable Browser组件来进行这种屏幕抓取。它在模拟浏览器方面做得非常好。
您不需要将会话传递给真实客户端(即使可能可能,取决于站点的安全级别) - 您可以简单地让您的PHP脚本成为目标网站与最终用户之间的代理。
答案 2 :(得分:0)
不幸的是,除非网站位于同一个域中,否则这是不可能的。 Cookie仅在其源自的域中有效。此外,子域计为不同的域。否则,(请记住我没有使用太多的PHP)你可以从响应中提取标题,并将cookie复制到客户端。