php下載圖片到本地
① php如何下載動態圖片保存到本地
php 遠程下載文件
function http($url, $file="", $timeout=60) {
$file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
$dir = pathinfo($file,PATHINFO_DIRNAME);
!is_dir($dir) && @mkdir($dir,0755,true);
$url = str_replace(" ","%20",$url);
if(function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$temp = curl_exec($ch);
if(@file_put_contents($file, $temp) && !curl_error($ch)) {
return $file;
} else {
return false;
}
} else {
$opts = array(
"http"=>array(
"method"=>"GET",
"header"=>"",
"timeout"=>$timeout)
);
$context = stream_context_create($opts);
if(@($url, $file, $context)) {
//$http_response_header
return $file;
} else {
return false;
}
}
}
② php如何把圖片緩存到本地
正確設置Http Response Header中的Expires頭將有助於提高網頁訪問速度
我們的網站中往往包含大量的頁面組件,比如圖片、樣式表文件、JS腳本文件和Flash動畫。這些組件的變化頻率非常低,尤其是那些構成網站基本框架的組件,
幾乎不會發生變化。我們可以將這些變化率很低的組件看作靜態內容,利用IIS的內容過期機制和瀏覽器的本地緩存機制將它們在訪問者的電腦硬碟中保存一段時間。
當訪問者訪問你的網站時,如果這些存在本地的靜態內容沒有過期,瀏覽器會從本地硬碟中裝載,而不去向伺服器發出請求。
如果你使用Fiddler這樣的工具跟蹤網頁訪問,你會清楚地看到雖然只是訪問一個頁面,但是發出的Http請求和應答卻不止一個。網頁中的每張圖片,每個
JS腳本文件,每個CSS文件,都會引發一次請求和應答。因此如果想讓網頁的訪問速度快起來,減少Http的請求數量,降低從伺服器下載內容的次數是有效途徑。
而使用了內容過期機制後可以就實現這樣的目的,這就是使用內容過期機制的意義。
大多數的Web開發者都玩過IIS 6或IIS 7,但是又有多少人仔細觀察過HTTP Headers或HTTP Response Headers
③ php 如何將多張圖片壓縮下載到本地 ,詳細一點,有案例更好!!謝謝各位了
php的壓縮方式
<?php
$zip = zip_open("/tmp/test2.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf\n";
zip_entry_close($zip_entry);
}
echo "\n";
}
zip_close($zip);
}
?>
用php下載多張圖片
<?php
set_time_limit(0);//設置PHP超時時間
$aImgList = array_unique($aImgList );
foreach($aImgList as $lists) {
file_put_contents(basename($lists), file_get_contents($lists));
}
?>
④ 在thinkphp中怎樣實現點擊一張圖片下面的超鏈接「下載」實現這張圖片的下載功能求代碼、、
可參照如下代碼
imageAction.php
<?php
//資料庫部分自己改
$link=mysql_connect("localhost","root","123456");
mysql_select_db('test',$link);
mysql_query("set names gb2312"); <br>
$recid = $_GET['recid'];
$query="select * from tb_tpsc where id = $recid";
$result=mysql_query($query);
$info = mysql_fetch_array($result);<br>
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-Type: image/jpeg');
//想辦法獲取文件擴展名,我這里默認的給的是jpeg的,這個你沒有存起來
header("Content-Disposition:filename=". $info['tpmc'] . ".jpeg");
echo $info['file'];
?>
在模板裡面寫:<a href="路徑/imges/recid/圖片文件的id">下載</a>
具體的代碼以及傳遞的參數,依據你的實際應用修改。
⑤ 寰淇℃祻瑙堝櫒涓錛宲hp鎬庝箞涓嬭澆鍥劇墖鍒版墜鏈轟腑
絎涓縐嶅姙娉曞氨鏄闀挎寜鍥劇墖錛岀劧鍚庢墦寮鍔犺澆瀹屾垚涔嬪悗鍐嶇偣鍑婚暱瀹夌洿鎺ョ偣淇濆瓨銆傚彟涓涓灝辨槸鐢ㄥ叾浠栨柟寮忔墦寮錛岄夋嫨姝e父鐨勬祻瑙堝櫒鎵撳紑涔嬪悗錛岄暱鎸変綇鎯充繚瀛樼殑鍥劇墖淇濆瓨灝卞彲浠ヤ簡銆傜壒鍒綆鍗曪紝浣犲彲浠ヨ瘯涓涓嬨