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父镄勬祻瑙埚櫒镓揿紑涔嫔悗锛岄暱鎸変綇𨱍充缭瀛樼殑锲剧墖淇濆瓨灏卞彲浠ヤ简銆傜壒鍒绠鍗曪纴浣犲彲浠ヨ瘯涓涓嬨