php基于ob_start(ob_gzhandler)实现网页压缩功能的方法

 更新时间:2017年7月6日 23:49  点击:2333
小编推荐的这篇文章介绍了php基于ob_start(ob_gzhandler)实现网页压缩功能的方法,非常实用,有兴趣的同学可以看看。

PHP生成网页后传送给浏览器显示 ,页面的打开速度除了与用户的网速有关,往往也跟页面的大小有很关系,我们可以从网 页大小着手,以提高网页的响应速度。

下面的代码是一个压缩网页的例子,我们利用ob_gzip函数,使用ob_start将输出内容压缩后放到“缓冲区”后再输出 。

PHP代码

 

 代码如下复制代码

//启用压缩

if(function_exists('ob_gzip'))

{

 ob_start('ob_gzip');

}

//准备一些待压缩的内容

for($i=0;$i<100;$i++)

{

 echo('这里是测试内容
');

}

//输出压缩成果

ob_end_flush();

//这是ob_gzip压缩函数

functionob_gzip ($content)

{

 if( !headers_sent() &&extension_loaded("zlib") &&strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")){

 $content= gzencode($content,9);

 header ("Content- Encoding: gzip");

 header ("Vary: Accept- Encoding");

 header ("Content- Length: ".strlen($content));

 }

 return($content) ;

}

 

到底作用有 多大,在这里我就上面的代码进行了测试。

压缩前:

压缩后:

小编给大家推荐的这篇文章介绍了php上传文件分类实例代码的实例,非常实用,有兴趣的同学快来看看吧。

 

 代码如下复制代码

<?php

/**

* 文件上传类

* @author lijiamin

* @time 2017-02-17

* @email 1195989301@qq.com

*/

classUpload{

private$allowExt=array('gif','jpg','jpeg','bmp','png','swf');//限制文件上传的后缀名

private$maxSize= 1;//限制最大文件上传1M

/**

* 获取文件的信息

* @param str $flag 上传文件的标识

* @return arr 上传文件的信息数组

*/

publicfunctiongetInfo($flag){

return$_FILES[$flag];

}

/**

* 获取文件的后缀

* @param str $filename 文件名

* @return str 文件扩展名

*/

publicfunctiongetExt($filename){

returnpathinfo($filename,PATHINFO_EXTENSION);

}

/**

* 检测上传文件是否合法

* @param str $filename 文件名

* @return bool 文件扩展名是否合法

*/

privatefunctioncheckExt($filename){

$ext=$this->getExt($filename);

returnin_array($ext,$this->allowExt);

}

/**

* 检测文件大小是否超过限制

* @param int size 文件大小

* @return bool 文件大小是否超过限制

*/

publicfunctioncheckSize($size){

return$size<$this->maxSize * 1024 * 1024;

}

/**

* 随机的文件名

* @param int $len 随机文件名的长度

* @return str 随机字符串

*/

publicfunctionrandName($len=6){

returnsubstr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len);

}

/**

* 创建文件上传到的路径

* @return str 文件上传的路径

*/

publicfunctioncreateDir(){

//上传文件路径

$dir='./upload/'.date('Y/m/d',time());

//判断文件夹是否存在,不存在则新建

if(is_dir($dir) ||mkdir($dir,0777,true)){

return$dir;

}

}

/**

* 文件上传

* @param str $flag 文件上传标识

* @return array 返回上传文件名、保存路径

*/

publicfunctionuploadFile($flag){

if($_FILES[$flag]['name'] ===''||$_FILES[$flag]['error'] !== 0){

echo"没有上传文件";

return;

}

$info=$this->getInfo($flag);

if(!$this->checkExt($info['name'])){

echo"不支持的文件类型";

return;

}

if(!$this->checkSize($info['size'])){

echo"文件大小超过限制";

return;

}

$filename=$this->randName().'.'.$this->getExt($info['name']);

$dir=$this->createDir();

if(!move_uploaded_file($info['tmp_name'],$dir.'/'.$filename)){

echo"文件上传失败";

}else{

returnarray('filename'=>$filename,'dir'=>$dir);

}

}

}

?>

 

小编推荐的这篇文章介绍了php使用str_shuffle()函数生成随机字符串的方法分析,非常实用,有兴趣的同学快来看看吧。

str_shuffle():随机打乱字符串的顺序。

可以通过str_shuffle()函数与substr()函数的组合,生成每次都不一样的字符串。

以下是str_shuffle()函数的两个示例:

示例一:随机生成长度为10位数字的字符串。

 代码如下复制代码

$str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm";

str_shuffle($str);

$name=substr(str_shuffle($str),26,10);

echo$name;

运行结果:bdgNIC04wF

示例二:生成了NT开头的10位字符串。

 代码如下复制代码

$str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm";

$str='NT'.substr(str_shuffle($str),5,8);

echo$str;

运行结果:NTZYwKiDaF

[!--infotagslink--]

相关文章

  • C#实现图片放大功能的按照像素放大图像方法

    这篇文章主要介绍了C#实现图片放大功能的按照像素放大图像方法,功能非常实用,需要的朋友可以参考下...2020-06-25
  • python中翻译功能translate模块实现方法

    在本篇文章中小编给各位整理了一篇关于python中翻译功能translate模块实现方法,有需要的朋友们可以参考下。...2020-12-18
  • Mybatis-plus使用TableNameHandler分表详解(附完整示例源码)

    这篇文章主要介绍了Mybatis-plus使用TableNameHandler分表详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-26
  • phpMyAdmin 高级功能设置的方法图解

    phpmyadmin还有高级功能可能大部份站长不知道吧,今天本文章就来给大家介绍phpMyAdmin 高级功能设置的方法图解,希望文章对大家会有所帮助。 phpMyAdmin 安装后,默认...2016-11-25
  • AngularJS 让人爱不释手的八种功能

    AngularJS 让人爱不释手的八种功能,想知道AngularJS哪八种功能让人喜欢就快点看下本文吧...2016-03-28
  • EMUI11上手体验 新颜值/新功能/新体验

    EMUI11值得升级吗?好不好用?下面小编带来EMUI11上手体验,一起来看看手机鸿蒙OS的提前预演...2020-12-08
  • 微信小程序实现导航功能的操作步骤

    这篇文章主要给大家介绍了关于微信小程序实现导航功能的操作步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • 小爱同学5.0新增了哪些机型 小爱同学5.0新功能介绍

    小爱同学5.0即将发布,据已知报道小爱同学5.0将新增机型,跟着小编一起来看看吧,顺便了解下即将都有哪些新功能面市吧...2020-12-08
  • 很全面的JavaScript常用功能汇总集合

    这篇文章主要为大家分享了一份很全面的JavaScript常用功能汇总集合,一些常用的额JS 对象、基本数据结构、功能函数等,感兴趣的小伙伴们可以参考一下...2016-01-24
  • Night Shift是什么意思 Night Shift有什么功能及作用?

    Night Shift是IOS9.3正式版系统新增加的功能之一,很多伙伴们都不清楚Night Shift是什么意思?以及Night Shift有什么用途?对此,本文小编就为大家详细介绍Night Shift的含义及作用...2016-07-04
  • 使用php的编码功能-实例调用(3)

    <?php include_once("mime.inc"); $mm = new MIME(); $to = "customer@263.net"; $subject = $mm->encode("商城","gb2312"); // 编码 $msg = "注册会员成功<br>"; $m...2016-11-25
  • php基于ob_start(ob_gzhandler)实现网页压缩功能的方法

    小编推荐的这篇文章介绍了php基于ob_start(ob_gzhandler)实现网页压缩功能的方法,非常实用,有兴趣的同学可以看看。 PHP生成网页后传送给浏览器显示 ,页面的打开速度...2017-07-06
  • MIUI8录屏功能在哪 MIUI8录屏功能怎么使用

    小米在最新的MIUI8中正式加入了录屏功能,用户再也不需要ROOT手机,然后借助“录屏大师”等APP来录屏了,借助系统自带的录屏功能即可轻松录制屏幕。那么,MIUI8录屏功能录屏功能在哪?MIUI8录屏功能怎么使用?本文将提供MIUI小米手机录屏使用方法图文教程供大家了解...2017-07-06
  • thinkPHP商城公告功能开发问题分析

    这篇文章主要介绍了thinkPHP商城公告功能开发问题,结合实例形式分析了基于thinkPHP实现商城公告功能所涉及的ajax交互及数据库操作相关技巧,需要的朋友可以参考下...2016-12-02
  • Yii2实现让关联字段支持搜索功能的方法

    这篇文章主要介绍了Yii2实现让关联字段支持搜索功能的方法,结合实例形式分析了Yii2关联字段搜索功能的原理与相关实现技巧,需要的朋友可以参考下...2016-08-27
  • 浅析PHP7新功能及语法变化总结

    这篇文章主要介绍了浅析PHP7新功能及语法变化总结的相关资料,需要的朋友可以参考下...2016-06-24
  • php 断点续传功能

    断点续传指的是在上传时,将上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传,下面我们来看看php 断点续传功能的实现方法吧。 <?...2016-11-25
  • vue打印功能实现的两种方法总结

    在项目中,有时需要打印页面的表格,所以下面这篇文章主要给大家介绍了关于vue打印功能实现的两种方法,以及批量打印的完整代码,需要的朋友可以参考下...2021-06-17
  • PHP5中的三大特色功能

    PHP5 中的三大特色功能。这三大特点为:   * 新的对象模式 (New Object Mode)   * 异常处理 (Exceptions)   * 名称空间 (Namespace)      在开始之前,...2016-11-25
  • C#+MO实现一些渲染功能

    using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace DbInMo {...2020-06-25