PHP 从需要身份验证的网页读取


PHP read from a webpage that requires authentication

我正在尝试获取需要使用PHP进行身份验证的网页的内容。
理想情况下,我想使用简单的html dom解析器:http://simplehtmldom.sourceforge.net。
有人知道一种方法可以做到这一点吗?

编辑:
已尝试以下代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=' . urlencode($username) . '&password=' . urlencode($pass));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
echo curl_exec($ch);
curl_close($ch);

但是现在我收到405 HTTP错误。

我从未使用过该解析器,但他们的示例代码使其看起来像可以从文件或 URL 加载数据。 我会使用 php 的 curl 函数,它可以轻松地允许您访问具有多种身份验证类型的页面,将结果保存到文件中,然后使用库解析文件。

http://www.php.net/manual/en/book.curl.php

具体查看CURLOPT_HTTPAUTH选项。

希望这有帮助。

编辑:

我不得不查找 405;我从来没见过。 听起来您的ISP不允许POST请求,或者可能不允许没有SSL的请求:

http://www.checkupdown.com/status/E405.html

我会和运行你的服务器的人谈论405。 你的代码对我来说看起来不错。 发布登录表单是否会返回您想要的页面,还是在保存会话信息后必须下拉另一个页面?