本文目錄一覽:
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傳遞。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/254738.html