我正在编写一个脚本,用于下载和扫描我尝试使用PHP cURL下载此示例页面的特定网页元素:
http://www.jetbull.com/Deposit
但是,每次我尝试curl_exec()时输出文件都是空的。有谁知道为什么这是或能够引导我解决这个问题?
我很容易在此功能中使用几乎任何其他网址,但这不会发生。
function download_page($url, $out_file = "body.txt") {
$fp = fopen($out_file, "w");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
fclose($fp);
$details = curl_getinfo($ch);
curl_close($ch);
return $details;
}
$url = "http://www.jetbull.com/Deposit";
download_page($url);
我在nix环境中运行PHP 5.2.6。 我可以清楚地看到页面将返回307,但我不确定为什么没有遵循重定向(如果这确实是问题)。
在Firefox中,此页面检索正常,报告的HTTP 200。 服务器是否以某种非标准的方式响应cURL没有处理,或者cURL没有正确地遵循重定向,否则我做其他事情只是愚蠢的?
任何有关如何解决此问题或引导我走上正轨的信息都将非常感激!
答案 0 :(得分:3)
添加此选项
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');