首页 > 编程知识 正文

php用curl远程下载图片(php curl 下载文件)

时间:2023-11-28 02:41:35 阅读:309710 作者:UWFA

本文目录一览:

  • 1、php curl get 下载远程zip文件保存在本地例子
  • 2、php 用CURL 抓取图片
  • 3、PHP CURL 下载多图。部分图片没下载
  • 4、PHP CURL 获取远程数据下载

php curl get 下载远程zip文件保存在本地例子

?php

if($_POST['submit']){

$url=$_POST['url']; //取得提交过来的地址

$url=urldecode($url);

$fname=basename("$url"); //返回路径中的文件名部分 fetion_sms.zip

$str_name=pathinfo($fname); //以数组的形式返回文件路径的信息

$extname=strtolower($str_name['extension']); //把扩展名转换成小写

//$uptypes=explode(",",$forum_upload); //取得可以上传的文件格式

//$size=getFileSize($url);

$time=date("Ymd",time());

$upload_dir="./upload/";//上传的路径

$file_name=$time.rand(1000,9999).'.'.$fname;

$dir=$upload_dir.$file_name;//创建上传目录

//判断目录是否存在 不存在则创建

if(!file_exists($upload_dir)){

mkdir($upload_dir,0777,true);

}

$contents=curl_download($url,$dir);

if($contents){

echo "下载成功";

}else{

echo "下载失败";

}

}

function curl_download($url, $dir) {

$ch = curl_init($url);

$fp = fopen($dir, "wb");

curl_setopt($ch, CURLOPT_FILE, $fp);

curl_setopt($ch, CURLOPT_HEADER, 0);

$res=curl_exec($ch);

curl_close($ch);

fclose($fp);

return $res;

}

?

!DOCTYPE html

html lang="zh-CN"

head

meta

meta charset="utf-8" /

meta name="viewport" content="width=device-width, initial-scale=1"

title远程下载文件/title

form name="upform" method="post" action="" enctype='multipart/form-data'

input name='url' type='text' size='20'/

input type='submit' name='submit' value='远程下载'/

/form

/body

/html

php 用CURL 抓取图片

preg_match('@p.php?p=(.*)@Ui', $url, $url);//获取图片地址

if(isset($url[1]))

$url=$url[1];

else

$url='';

if($url):

//curl抓取图片过程

$ch = curl_init();

if (defined('CURLOPT_IPRESOLVE') defined('CURL_IPRESOLVE_V4')) {

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

}

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

$content = curl_exec($ch);

$info = curl_getinfo($ch);

curl_close($ch);

if ($info['http_code'] != 200)

$content = NULL;

if($content)//保存图片到本地

@file_put_contents ('存放地址', $content);

endif;

PHP CURL 下载多图。部分图片没下载

set_time_limit(0)

程序最上面加,表示程序运行时间无限

其实程序中还应该判断一下是否有这个图片

PHP CURL 获取远程数据下载

这样做肯定是用的你的带宽,是把文件下载到你的服务器上,然后再下载给客户端。

有两条路你可以去试试看,我没做过:一是setcookie指定域名是那个网站,然后转向:

setcookie ($cname ,$cvalue ,$expire ,$path , $host);

header('location: $url");

另外一个方法类似,好像有个P3P可以传递COOKIE,需要你自己查资料:

setcookie ($cname ,$cvalue);

header('P3P: ....');

header('location: $url");

第二个办法应该是可以的,陶宝和开心网都在用这样的技术,陶宝有许多域名,一次登录后都可以使用,就是利用P3P实现的COOKIE传递。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。