本文目录一览:
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 charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>远程下载文件</title>
</head>
<body>
<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 传递。