在php中使用curl登录页面,然后访问链接“已登录”


Login to page with curl in php and then visit link "logged in"

我需要用php中的curl登录(发布)到一个网站,然后保存一个具有身份验证的cookie,并使用它访问同一网站的正常链接。

他们只有一半的文本是免费的,但全部是收费的。因此,如果可能的话,我想保存一个cookie以供以后多次使用。

关于cURLPHP我知道一些,但是我还没有想出解决办法。

谢谢你们了!

您需要使用cookiejar参数在两个请求之间共享文本文件。

/* Create a temporary cookie file */
$ckfile = tempnam ("/tmp", "COOKIES");
/* Visit the first page */
$ch = curl_init ("http://somedomain.com/");
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);
/* Visit the second page */
$ch = curl_init ("http://somedomain.com/cookiepage.php");
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);

示例修改自http://coderscult.com/php-curl-cookies-example/


编辑:我应该阅读文档的tempnam…它会创建一个唯一的文件名,因此没有必要添加额外的用户特定前缀,除非您希望以后能够识别该文件。您还可以查看tmpfile(),它会在调用fclose时自动删除(通常在php请求的末尾)。