php用curl遠程下載圖片(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傳遞。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/254738.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:13
下一篇 2024-12-15 12:13

相關推薦

發表回復

登錄後才能評論