我刚刚开始学习cURL,现在我只是尝试各种各样的东西来习惯cURL给我的选项。这是一个简单的脚本,用于连接和检索当前站点的数据
<?php
$ch=curl_init();
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: "; // browsers keep this blank.
curl_setopt($ch, CURLOPT_URL, "http://img2.somesite.net/bitbucket/");
curl_setopt($ch, CURLOPT_HEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$a=curl_exec($ch);
curl_close($ch);
echo $a;
?>
我想把图像存储在那里,但显然我想念一些东西。我不知道应该怎么做。当你写http://img2.somesite.net/bitbucket/pic.jpg
图像被加载时。我想得到所有的名字在那里的文件,或者我应该触发一个命令,它将下载图像,然后在PC上检查它们......我不知道这可能用cURL和hwo可以完成吗?
当我离开时
http://somesite.net/
我得到了资源,所以基本上这可行...
谢谢
Leron
答案 0 :(得分:1)
尝试设置User-Agent,因为有些网站会在没有用户代理的情况下阻止请求。
此外,下载firefox的防篡改数据,并在您从浏览器启动下载时查看发送到服务器的邮件头。从卷曲中模仿所有的标题,这样就可以了。
多数民众赞成我是如何做到的。
答案 1 :(得分:0)
CURLOPT_HEADER是一个布尔值,用于确定是否应返回请求的标头。 要将标头传递给cURL,您应该使用CURLOPT_HTTPHEADER。
这应该可以正常工作:
<?php
$ch=curl_init();
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: "; // browsers keep this blank.
curl_setopt($ch, CURLOPT_URL, "http://img2.somesite.net/bitbucket/");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$a=curl_exec($ch);
curl_close($ch);
echo $a;
?>