2024-07-21 19:23:34 | 我爱编程网
因为在做一个项目,项目里面服务器主要提供数据,但是数据多了文件就大了,比较浪费流量和时间,我们便用Gzip来处理。我在本机上是apache,服务器上是IIS6.0,用的是php,那么我就在这里分享一下。
IIS 的 GZIP 压缩
1.首先备份 IIS 的配置文件, 复制 C:\Windows\system32\inetsrv\metabase.xml到另外的备份文件夹中. C:\Windows\system32\inetsrv\metabase.xml是 IIS 的核心配置文件,该文件的完整性一但被破坏,IIS 将无法正常运行,严重到需要重新安装系统.
2. 在开始菜单中启动 Internet 信息服务(IIS)管理器,右键点击“网站”属性,打开“服务”选项卡,勾选“HTTP 压缩”的两个选项。“临时目录”和“临时目录最大容量”可根据需要自行设置。设置完成后点击确定。
3. 右键点击“网站”下方的 “Web服务扩展”,添加一个新的Web服务扩展,扩展名填写为“HTTP Compression”或其他,都可以。“要求的文件”添加:c:\windows\system32\inetsrv\gzip.dll ,并勾选“设置扩展状态为允许”,完成后点击确定。
4.下面的步骤有些复杂,如果没有确定的把握能理解,最好不要尝试,右键点击“Internet 信息服务的”“本地计算机”属性,勾选“允许直接编辑配置数据库”并确定。
5. 在开始菜单中运行 notepad C:\Windows\system32\inetsrv\metabase.xml ,打开metabase.xml 文件,请在任何改动前再次确认该文件已经备份。
6. 用文本编辑器打开metabase.xml ,用查找功能找到“IIsCompressionScheme”,共有3处,都在一起,分别是deflate、gzip和 Parameters,deflate也是一种压缩格式,不过性能上不如gzip。需要修改的是deflate和gzip这两段,参数基本一样,都要修改。
HcDynamicCompressionLevel是用来设置压缩率,默认是0,最高是10。低压缩级别生成稍大一些的压缩文件,但对 CPU 和内存资源的总体影响较小。高压缩级别通常会生成较小的压缩文件,但会占用较多的 CPU 时间和内存。有人说设置成9性价比最高。
HcFileExtensions是用来设置压缩的静态文件扩展名,默认是htm、html、txt,根据网站的自身情况添加扩展名,最基本的是js、css。添加时注意原有的换行格式。
HcScriptFileExtensions是用来设置压缩的动态文件扩展名,默认是asp、dll和exe,根据需要自行添加扩展名,无外乎 aspx、php等。可以将这一项的默认删除留空,这样所有的动态响应都以压缩方式发送。另外,还将动态压缩 HcFileExtensions 中所有未指定的静态文件类型,并且因此不将它们放入缓存。同样地,必须将 HcDoDynamicCompression 设置为 true,以进行动态压缩。
PHP Gzip
/*
* 压缩数据
*/
public static function ob_gzip($content) // $content 就是要压缩的页面内容,或者说饼干原料
{
if( !headers_sent() && // 如果页面头部信息还没有输出
extension_loaded("zlib") && // 而且zlib扩展已经加载到PHP中
strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) //而且浏览器说它可以接受GZIP的页面
{
$content = gzencode($content." OK",9); //此页已压缩”的注释标签,然后用zlib提供的gzencode()函数执行级别为9的压缩,这个参数值范围是0-9,0表示无压缩,9表示最大压缩,当然压缩程度越高越费CPU。
//然后用header()函数给浏览器发送一些头部信息,告诉浏览器这个页面已经用GZIP压缩过了!
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
header("Content-Length: ".strlen($content));
}
return $content; //返回压缩的内容,或者说把压缩好的饼干送回工作台。
}
我爱编程网(https://www.52biancheng.com)小编还为大家带来php上传图片并压缩-thinkphp如何做图片压缩呢?的相关内容。
php压缩图片比如(什么?)上面有不同大小的图片--------语文表达缺主语,含糊导致无法理解。
服务器上面?客户机上面?具体什么软件环境上面?
“有不同大小的图片”,已经存在的图片通常已经压缩过的,像JPEG更是有损压缩。再次压缩必定再次会降低画质。PHP可以再次处理图片,但画质和存储大小不能兼得,画质好就存储大,要存储小就画质差,根据自己的画质需求处理。
thinkphp如何做图片压缩呢?在上传图片的时候先看看图片有多大,一般来说导航幻灯片的图片单张大小尽量不超100k,产品图不超过20k,这样加载还慢的话就用ajax后加载方法,可以是滚动加载之类,但是对蜘蛛抓取页面并不是很友好。
至于你说的用tp把图片压缩,那只能是将图片的尺寸改成你想要的尺寸,大小的话是web所用格式大小,等页面加载完你又换原图,这样相当于又加载了一遍,还不如做ajax滚动加载。
PHP网站上传图片自动压缩,怎么编程啊,求指这里会使用到三个文件:
:连接数据库
test_:执行SQL语句
upload_:上传图片并压缩
三个文件代码如下:
连接数据库:
<?php
$db_host='';
$db_user='';
$db_psw='';
$db_name='';
$db_port='';
$sqlconn=new_ysqli($db_host,$db_user,$db_psw,$db_name);
$q="set_ames_tf8;";
$result=$sqlconn->query($q);
if(mysqli_connect_errno())_
_rintf("Connect_ailed:%s\n",_ysqli_connect_error());
_xit();
}
?>
当然使用一些封装的数据库类也是可以的。
执行SQL语句:test_
<?php
require("");
require("upload_");
$real_img=$uploadfile;
$small_img=$uploadfile_resize;
$insert_sql="insert_nto_mg(real_img,small_img)_alues(?,?)";
$result=$sqlconn->_repare($insert_sql);
$result->_ind_param("ss",$real_img,$small_img);
$result->_xecute();
?>
上传图片并压缩:upload_
<?php
//设置文件保存目录
$uploaddir="upfiles/";
//设置允许上传文件的类型
$type=array("jpg","gif","bmp","jpeg","png");
//获取文件后缀名函数
function_ileext($filename)
{
_eturn_ubstr(strrchr($filename,'.'),1);
}
//生成随机文件名函数
function_andom($length)
{
$hash='CR-';
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max=_trlen($chars)-1;
_t_srand((double)microtime()*1000000);
_or($i=0;$i<$length;$i++)
_
_$hash.=$chars[mt_rand(0,$max)];
_
_eturn$hash;
}
$a=strtolower(fileext($_FILES['filename']['name']));
//判断文件类型
if(!in_array(strtolower(fileext($_FILES['filename']['name'])),$type))
{
$text=implode(",",$type);
$ret_code=3;//文件类型错误
$page_result=$text;
$retArray=_rray('ret_code'=>$ret_code,'page_result'=>$page_result);
$retJson=_son_encode($retArray);
_cho$retJson;
_eturn;
}
//生成目标文件的文件名
else
{
$filename=explode(".",$_FILES['filename']['name']);
_o
_
_$filename[0]=random(10);//设置随机数长度
_$name=implode(".",$filename);
_//$name1=$name.".Mcncc";
_$uploadfile=$uploaddir.$name;
_
_hile(file_exists($uploadfile));
_f(move_uploaded_file($_FILES['filename']['tmp_name'],$uploadfile))
_
_if(is_uploaded_file($_FILES['filename']['tmp_name']))
_{
_$ret_code=1;//上传失败
_}
_lse
_//上传成功
_$ret_code=0;
_
_
$retArray=_rray('ret_code'=>$ret_code);
$retJson=_son_encode($retArray);
echo$retJson;
}
//压缩图片
$uploaddir_resize="upfiles_resize/";
$uploadfile_resize=$uploaddir_resize.$name;
//$pic_width_max=120;
//$pic_height_max=90;
//以上与下面段注释可以联合使用,可以使图片根据计算出来的比例压缩
$file_type=$_FILES["filename"]['type'];
function_esizeImage($uploadfile,$maxwidth,$maxheight,$name)
{
//取得当前图片大小
$width=_magesx($uploadfile);
$height=_magesy($uploadfile);
$i=0.5;
//生成缩略图的大小
_f(($width>$maxwidth)_|($height>$maxheight))
_
_/*
_$widthratio=$maxwidth/$width;
_$heightratio=$maxheight/$height;
_
_if($widthratio<$heightratio)
_{
_$ratio=$widthratio;
_}
_else
_{
__$ratio=$heightratio;
_}
_
_$newwidth=$width*$ratio;
_$newheight=$height*$ratio;
_*/
_$newwidth=$width*$i;
_$newheight=$height*$i;
_if(function_exists("imagecopyresampled"))
_{
_$uploaddir_resize=_magecreatetruecolor($newwidth,$newheight);
__magecopyresampled($uploaddir_resize,$uploadfile,0,0,0,0,$newwidth,$newheight,$width,$height);
_} 我爱编程网
_else
_{
_$uploaddir_resize=_magecreate($newwidth,$newheight);
__magecopyresized($uploaddir_resize,$uploadfile,0,0,0,0,$newwidth,$newheight,$width,$height);
_}
_
_ImageJpeg($uploaddir_resize,$name);
_ImageDestroy($uploaddir_resize);
_
_lse
_
_ImageJpeg($uploadfile,$name);
_
}
if($_FILES["filename"]['size'])
{
_f($file_type=="image/pjpeg"||$file_type=="image/jpg"|$file_type=="image/jpeg")
_
_//$im=_magecreatefromjpeg($_FILES[$upload_input_name]['tmp_name']);
_$im=_magecreatefromjpeg($uploadfile);
_
_lseif($file_type=="image/x-png")
_
_//$im=_magecreatefrompng($_FILES[$upload_input_name]['tmp_name']);
_$im=_magecreatefromjpeg($uploadfile);
_
_lseif($file_type=="image/gif")
_
_//$im=_magecreatefromgif($_FILES[$upload_input_name]['tmp_name']);
_$im=_magecreatefromjpeg($uploadfile);
_
_lse//默认jpg
_
_$im=_magecreatefromjpeg($uploadfile);
_
_f($im)
_
_ResizeImage($im,$pic_width_max,$pic_height_max,$uploadfile_resize);
_
_ImageDestroy($im);
_
}
?>
请按照现实情况更改,test_中对应的信息。
望采纳,谢谢。
如何启用firefox对java的支持1、访问oracle官方站点下载最新版本的java的jdk安装包,因为java8安全隐患,火狐将其禁用,请尽量下载使用最新版本;2、安装jdk安装包,完成安装后,可能需要重启系统以让jdk生效。3、开启火狐浏览器,选项->附加组件管理,打开插件找到java选项,开启所有权限即可。火狐java已禁用,如何启用?尊敬的用户,您
学python用mac还是windows并没有说哪个系统比较好。python可以在windows、MacOS以及Linux系统都可以使用。windows端首先是习惯,无论是快捷键还是系统使用习惯都有先天性的优势。起码在一些日常的操作都可以很顺手方便的操作。但是要安装Python环境,也不难。直接百度搜索python下载就可以使用。MacOS、Linux端可
ios系统能不能装java能我是做java的我朋友做ios的他电脑装过,我帮他一起弄得jdk和tomcat建议使用独立环境的,也就是不配环境变量,而采用相对路径的方式配在tomcat/bin中,service.bat、shutdown.bat、startup.bat加入代码:setCATALINA_HOME=%~dp0\..\..\tomcat6tomcat的相对路径s
matlab禁用java支持怎么办它禁用java支持的解决方法如下:1、检查matlab版本:确保matlab版本支持java。从matlab2006b版本开始,可以使用Javabuilder工具箱将matlab与java集成。2、安装java运行时环境(jre):确保计算机上安装了正确版本的java运行时环境。matlab需要java运行环境来运行java代码。3、更新ma
现在的hadoop支持哪个java版本hadoop是用Java写的,2005年12月--Nutch移植到新的框架,Hadoop在20个节点上稳定运行。2004年--最初的版本(称为HDFS和MapReduce)由DougCutting和MikeCafarella开始实施。2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本
python不支持的数据类型是什么?python不支持的数据类型是char、byte类型。Python没有char或byte类型来保存单一字符或8比特整数。你可以使用长度为1的字符串表示字符或8比特整数。python的数据类型有:数字(int)、浮点(float)、字符串(str),列表(pst)、元组(tuple)、字典(dict)、集合(set)。
华为鸿蒙系统支持的机型华为鸿蒙系统是华为公司自主研发的操作系统,经过多年的研发和测试,终于于2020年正式发布。鸿蒙系统不仅具备良好的性能和稳定性,还具有完全自主可控的特点。目前,该系统已支持了不少于2000个机型,为用户提供了更加多元化和个性化的操作体验。鸿蒙系统支持的机型包括华为旗下的多款智能手机、平板电脑、智能穿戴等,还包括一些外部品牌的设备,例如荣耀、惠普、海尔、长虹等。其中,
PHP直接调用函数和调用另外一个文件中的函数的区别//如果是PHP文件中的函数,唯一的区别是:先引入外部文件,然后直接调用。//如果是外部类文件中的函数,需要引入,然后new 对象后,再调用该对象的函数。$msg=test_msg();function test_msg(){echo "";}//调用外部文件中的函数//首先引入文件include_once 'file.php';$msg=t
2024-06-19 10:52:25
2024-04-10 07:43:02
2024-07-01 01:27:11
2024-06-02 02:36:32
2023-12-24 20:21:11
2024-07-21 07:55:08