cURL 可以请求一个 URL 并存储所请求的页面......但我想知道...... PHP 是否可以在网页上实际执行操作(如填写并提交表单)并存储有关所请求页面的信息?
问问题
237 次
2 回答
1
一个简单的登录示例将涉及说用户名和密码。
$ch = curl_init();
$data = array('username' => 'xyz', 'password' => 'abc');
curl_setopt($ch, CURLOPT_URL, 'http://website.com/login.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'close_cookies.txt');
curl_exec($ch);
curl_close($ch);
两条 cookie 行旨在将 cookie 存储在您的服务器上,以便随时读取它们。在该curl_exec($ch)
行之后,您仍然登录到网站,并且可以创建更多 POST 或 GET 请求,而无需重新登录。
于 2012-06-13T14:40:57.653 回答
1
您可以使用 cURL 执行 POST、HEAD、PUT、DELETE 以及您可以想象的任何其他 HTTP 操作。这模拟了大多数在线表单的提交。当您使用 cURL 的功能来使用 cookie 文件并伪造用户代理时,您可以伪造浏览器。
查看有关CURLOPT_POST、CURLOPT_PUT、CURLOPT_COOKIEFILE、CURLOPT_POSTFIELDS 和 CURLOPT_USERAGENT 部分的文档curl_setopt
您还可以通过以下方式查看有关请求页面的信息curl_getinfo($handle)
于 2012-06-13T14:39:41.383 回答