我对 CURL (PHP) 有疑问。我想使用 CURL 直接登录网站。有没有可能,如果可以,请指导我。
我尝试了以下但它不起作用
http://username:password@myurl
这可能是您正在寻找的:
$ch = curl_init("http://myurl");
curl_setopt($ch, CURLOPT_USERPWD, "[username]:[password]");
$output = curl_exec($ch);
您可以在此处找到 CURL 的更多选项。
praveenjayapal,您是否尝试登录到使用 HTTP 身份验证的站点?或者该站点是否有您填写的某种用户名/密码表格?
在第二种情况下,CURL 可能不是正确的解决方案,因为此类站点通常会在您成功登录后在您的浏览器中存储某种身份验证 cookie。
为了模拟浏览器的行为,您必须发送提交用户名和密码的 POST/GET 请求,然后读取 HTTP 标头中返回的 cookie。(可能有一种方法可以让 CURL 将它们吐出。)一旦你有了 cookie,你就可以继续正常访问该站点,只要你继续发送 cookie。
请注意:许多网站的行为不像我上面描述的那么简单。但是大多数基于 PHP 的站点只是使用 PHP 会话来跟踪用户浏览站点。这意味着您需要“告诉”该站点您属于某个会话。根据网站上 PHP 的配置方式,这可以通过存储和发送phpsessid
cookie 来完成,或者phpsessid
作为每个请求中的 GET 参数来完成。