php Curl循环从目录下载图像
我想从一个api下载图像,当你像这样访问url时,它会返回一种“.jpg”php Curl循环从目录下载图像,php,loops,curl,Php,Loops,Curl,我想从一个api下载图像,当你像这样访问url时,它会返回一种“.jpg” https://www.foo.com/getimage.php?id=?? 我发现脚本接受编码的id,但只接受base64\u encode,所以我尝试这样做 <?php $ch = curl_init(); for($i = 1; $i <= 10; $i++) { $ch = curl_init(); $id = base64_encode($i); curl_setopt($ch,CURLOP
https://www.foo.com/getimage.php?id=??
我发现脚本接受编码的id
,但只接受base64\u encode
,所以我尝试这样做
<?php
$ch = curl_init();
for($i = 1; $i <= 10; $i++) {
$ch = curl_init();
$id = base64_encode($i);
curl_setopt($ch,CURLOPT_URL,"https://www.foo.com/getimage.php?id=$id");
if(curl_exec($ch)===false){
file_put_contents('downloads/' . base64_decode($id) . '.jpg', $ch);
}
}
curl_close($ch);
这将与HTTP
连接一起使用。您需要一些附加设置才能使用HTTPS
代码中对一些重要注释进行了注释
<?php
for($i = 1; $i <= 10; $i++) {
$ch = curl_init();
$id = base64_encode($i);
curl_setopt($ch,CURLOPT_URL,"https://www.foo.com/getimage.php?id=$id");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return data as string
// disable peer verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// disable host verification
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
// spoof a real browser client string
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
$output = curl_exec($ch); // capture data into $output variable
if( $output != false){
file_put_contents('downloads/' . base64_decode($id) . '.jpg', $output );
}
curl_close($ch);
}
文件是否存在下载/_ubase64_uu.jpg
?或者,它从来没有被写过?通常你需要一些额外的CURLOPT
来进行HTTPS
类型的连接。它永远不会被写入。你能试试http://www.foo.com/
或者它需要SSL?它将我发送回https
,当我访问http
时,您也可以尝试,作为curl
的替代方案,