当前位置:  编程技术>php
本页文章导读:
    ▪PHP执行Linux命令行小例——文件压缩            前几天工作中,需要将3个txt文件,打包成*.zip down到本地……      一开始,我和普通青年一样,想到用PHP内置的 ZipArchive,代码看起来应该是.........
    ▪放出php压缩HTML函数,轻松压缩html、js和Css      压缩HTML的起因如何 提高网页加载速度 ,需要怎么对html页面优化相信是每个拟提高建站技术站长曾想到的问题,其实 网页优化 的方法还是很多。有童鞋询问higrid如何 压缩H.........
    ▪PHP下使用CURL方式POST数据至API接口的方法      PHP下使用curl方式post数据至api接口的方法大部分的API的HTTP请求方式都为GET,所以不管用AJAX和PHP二次处理都能拿到返回的数据但是一些API的HTTP请求方式是POST,那么我们就需要使用到curl了其实,.........

[1]PHP执行Linux命令行小例——文件压缩
    来源:    发布时间: 2013-11-07

      前几天工作中,需要将3个txt文件,打包成*.zip down到本地……

      一开始,我和普通青年一样,想到用PHP内置的 ZipArchive,代码看起来应该是这样的:

     

/*拆分成3个txt文件 分别是wow_1.txt wow_2.txt 和 wow_3.txt*/

$zip=new ZipArchive();
$zipfile='./Exl_file/wow.zip';
if($zip->open($zipfile,ZIPARCHIVE::CREATE)===TRUE){
$zip->addFile('./Exl_file/wow_1.txt','wow_1.txt');
$zip->addFile('./Exl_file/wow_2.txt','wow_2.txt');
$zip->addFile('./Exl_file/wow_3.txt','wow_3.txt');
$zip->close();

//下载 输出文件后删除相关文件

}else{
echo "ZIP生成失败!";
}

      可是纠结的是正式环境上没安装zip扩展,ZipArchive直接没法用,代码绝对比在上面装个扩展要来的快——用PHP调用Linux的命令行 ,执行压缩命令,OK,马上行动!

/*拆分成3个txt文件 分别是wow_1.txt wow_2.txt 和 wow_3.txt 全部放到 Exl_file 目录下*/

$outputs=array();

/*用php的exec执行Linux命令 括号里的字符串就是你在Linux命令窗口里敲的命令;
第二个参数是 linux执行该命令后返回的结果数组;
linux执行返回的每一条结果依次存入该数组

第三个参数是结果,如果执行成功,则Linux返回结果值为0,如果执行失败,则结果值不为0

*/


exec("zip ./Exl_file/wow.zip ./Exl_file/wow_1.txt ./Exl_file/wow_2.txt ./Exl_file/wow_3.txt",$outputs,$rc);


if($rc!=0){
foreach ($outputs as $ko=>$vo){
echo "$vo<br/>";
}
}else{
$zipfile='./Exl_file/wow.zip';

//文件下载 输出后删除相关文件
}
}


     你可以把  if($rc!=0)  改成  if(1==1)  查看Linux执行命令返回的结果行,如下图:

adding: Exl_file/wow_1.txt (deflated 96%)
adding: Exl_file/wow_2.txt (deflated 97%)
adding: Exl_file/wow_3.txt (deflated 97%)

    可以看到执行返回的信息全部输入到了 $outputs 数组中,*.zip文件生成成功。

 

     

本文链接


    
[2]放出php压缩HTML函数,轻松压缩html、js和Css
    来源:    发布时间: 2013-11-07
压缩HTML的起因

如何 提高网页加载速度 ,需要怎么对html页面优化相信是每个拟提高建站技术站长曾想到的问题,其实 网页优化 的方法还是很多。

有童鞋询问higrid如何 压缩HTML,也就是说能不能 把所有的html、js、Css在运行前都压缩成一行,清除注释标记、换行符、空格、制表符等。这样一个直接的好处是 减小html页面体积来提高前端加载速度。很多人认为启动gzip,但一般启动gzip都比较少对html启动gzip压缩,因为现在的html都是动态的,不会使用浏览器缓存,而启用gzip的话每次请求都需要压缩,会比较消耗服务器资源,对js,css启动gzip比较好是因为js,css都会使用缓存。而大家也用了很多软件过滤一下压缩,也有 在线js/css/html压缩工具,higrid觉得也很麻烦,可读性很差。higrid认为如果将压缩功能做成一个函数的话,这样开发者看到的是未压缩的状态,但访客访问时,服务端的程序将 html页面进行压缩,清除注释标记、换行符、空格、制表符等 来达到 减小了html体积的目的。 如果您经常访问higrid.net, 右键查看一下 html源代码 ,会看到本篇 html源代码经过了压缩处理。包括higrid.net 提供的免费内容管理系统 ,输出的都是压缩html,去掉了空白、换行符、制表符。但higrid.net 上面也有一些例外,就是higrid.net 主要推荐 在线表格 、在线图形 ,包括 jquery这些演示 ,为了方便访客,就没有启动压缩。

因此,higrid个人觉得 压缩html 的最大好处就是一本万利,只要写好了一次函数,以后在需要运用的时候调用一下就可以了,所有程序都可以使用,不会增加任何额外的开发工作。今天higrid就给大家分享几个个人觉得好用的函数,请大家不妨试试看,相信大家会喜欢。

采用php来压缩HTML

由于higrid对 php 比较感兴趣,所以使用 php来压缩HTML,当然使用其他语言也差不多,例如使用 asp来压缩HTML,道理应该一样的。

higrid将 压缩html的功能用php写成一个函数 ,其实网上这样的 php压缩函数 也很多,不信你可以百度或者谷歌,但多数不是很好用,特别在 压缩js 或 压缩CSS 的时候,主要原因是一些 压缩注释 等方面不同导致出现问题。 先看这个函数:

/**
* 压缩html : 清除换行符,清除制表符,去掉注释标记
* @param $string
* @return压缩后的$string
* */
function compress_html($string){
$string=str_replace("\r\n",'',$string);//清除换行符
$string=str_replace("\n",'',$string);//清除换行符
$string=str_replace("\t",'',$string);//清除制表符
$pattern=array(
"/> *([^ ]*) *</",//去掉注释标记
"/[\s]+/",
"/<!--[^!]*-->/",
"/\" /",
"/ \"/",
"'/\*[^*]*\*/'"
);
$replace=array (
">\\1<",
" ",
"",
"\"",
"\"",
""
);
return preg_replace($pattern, $replace, $string);
}
php来压缩HTML注意事项

php来压缩HTM 实现的方式主要是用正则表达式去查找,替换。在html压缩的时候,主要要注意下面几点:

  • HTML 文档中,多个空白字符等价为一个空白字符。也就是说换行等空白字符的删除是不安全的,有可能导致部分元素的样式产生差异。
  • html中有一个pre, 表示 preformatted text. 里面的任何空白,都不能被删除,因此pre,textarea 标签里面的内容格式需要保留,不能压缩。
  • HTML 中有可能有 IE 条件注释。这些条件注释是文档逻辑的一部分,不能被删除。因此去掉html注释的时候,有些注释是不能去掉的,比如:
  • 压缩嵌入式js中的注释要注意,因为可能注释符号会出现在字符串中,比如: var url = "http://www.higrid.net"; // 前面的//不是注释
  • 对于动态页面来说,HTML 的压缩有可能还会增加服务器的 CPU 负担,得不偿失
  • higrid使用的php压缩html函数代码

    由于注释对代码有作用,higrid使用的php压缩html函数代码 没有去掉注释,直接上代码。

    function higrid_compress_html($higrid_uncompress_html_source )
    {
    $chunks = preg_split( '/(<pre.*?\/pre>)/ms', $higrid_uncompress_html_source, -1, PREG_SPLIT_DELIM_CAPTURE );
    $higrid_uncompress_html_source = '';//[higrid.net]修改压缩html : 清除换行符,清除制表符,去掉注释标记
    foreach ( $chunks as $c )
    {
    if ( strpos( $c, '<pre' ) !== 0 )
    {
    //[higrid.net] remove new lines & tabs
    $c = preg_replace( '/[\\n\\r\\t]+/', ' ', $c );
    // [higrid.net] remove extra whitespace
    $c = preg_replace( '/\\s{2,}/', ' ', $c );
    // [higrid.net] remove inter-tag whitespace
    $c = preg_replace( '/>\\s</', '><', $c );
    // [higrid.net] remove CSS & JS comments
    $c = preg_replace( '/\\/\\*.*?\\*\\//i', '', $c );
    }
    $higrid_uncompress_html_source .= $c;
    }
    return $higrid_uncompress_html_source;
    }
    php压缩html函数代码总结

    有些童鞋不 推荐压缩html , 主要原因除了上面所说的 php来压缩HTML注意事项 外,通过 gzip 压缩已经能达到很好的效果。另外,因为产生影响HTML的角色太多(静态,动态,前端动态),也没什么量化指标,所以很难控制压缩成什么样(代码写成什么程度)。代码更需要考虑执行效率,而不是传输效率。对于动态页面来说,HTML 的压缩有可能还会增加服务器的 CPU 负担,得不偿失。Google的压缩网页 是因为早期他希望首页文本尽可能控制在一个或两个包内,而且他的首页太重要了,流量也很离谱。压缩一个字节,总流量一算都是个不小的数字,自然也就是必要之举了。进一步的压缩存在问题,除非能像 Google 一样充分测试(Google 也仅压缩了少部分核心服务的页面),否则不推荐对 HTML 进行压缩处理。

    但使用higrid.net 的 php压缩html函数 代码,能很好的解决这个问题。好了,还不快试试。

    本文链接


        
    [3]PHP下使用CURL方式POST数据至API接口的方法
        来源:    发布时间: 2013-11-07

    PHP下使用curl方式post数据至api接口的方法

    大部分的API的HTTP请求方式都为GET,所以不管用AJAX和PHP二次处理都能拿到返回的数据

    但是一些API的HTTP请求方式是POST,那么我们就需要使用到curl了

    其实,也比较简单,上代码:

    <?php

    $url = 'http://127.0.0.1/test.php';//POST指向的链接
    $data = array(
    'access_token'=>'thekeyvalue'
    );

    $json_data = postData($url, $data);
    $array = json_decode($json_data,true);
    echo '<pre>';print_r($array);

    function postData($url, $data)
    {
    $ch = curl_init();
    $timeout = 300;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, "http://www.jincon.com/ "); //构造来路
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $handles = curl_exec($ch);
    curl_close($ch);
    return $handles;
    }

    ?>

     来源:http://www.jincon.com/archives/3/

    开了,新博客,欢迎各位来关注下哈。。。以后继续分享相关文章。

    本文链接


        
    最新技术文章:
    ▪PHP函数microtime()时间戳的定义与用法
    ▪PHP单一入口之apache配置内容
    ▪PHP数组排序方法总结(收藏)
    ▪php数组排序方法大全(脚本学堂整理奉献)
    ▪php数组排序的几个函数(附实例)
    ▪php二维数组排序(实例)
    ▪php根据键值对二维数组排序的小例子
    ▪php验证码(附截图)
    ▪php数组长度的获取方法(三个实例)
    ▪php获取数组长度的方法举例
    ▪判断php数组维度(php数组长度)的方法
    ▪php获取图片的exif信息的示例代码
    ▪PHP 数组key长度对性能的影响实例分析
    ▪php函数指定默认值的方法示例
    ▪php提交表单到当前页面、提交表单后页面重定...
    ▪php四舍五入的三种实现方法
    ▪php获得数组长度(元素个数)的方法
    ▪php日期函数的简单示例代码
    ▪php数学函数的简单示例代码
    ▪php字符串函数的简单示例代码
    ▪php文件下载代码(多浏览器兼容、支持中文文...
    ▪php实现文件下载、支持中文文件名的示例代码...
    ▪php文件下载(防止中文文件名乱码)的示例代码
    ▪解决PHP文件下载时中文文件名乱码的问题
    ▪php数组去重(一维、二维数组去重)的简单示例
    ▪php小数点后取两位的三种实现方法
    ▪php Redis 队列服务的简单示例
    ▪PHP导出excel时数字变为科学计数的解决方法
    ▪PHP数组根据值获取Key的简单示例
    ▪php数组去重的函数代码示例
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3