PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)


Posted in PHP onJuly 02, 2013

最近我从thinkphp的‘RUNTIME_ALLINONE'借鉴到经验:不怕缓存多,就怕调用乱,索性将所有常用的文件全部合并成一个文件,岂不美哉。。。

function strip_whitespace($content) {
    $stripStr = '';
    //分析php源码
    $tokens =   token_get_all ($content);
    $last_space = false;
    for ($i = 0, $j = count ($tokens); $i < $j; $i++){
        if (is_string ($tokens[$i])){
            $last_space = false;
            $stripStr .= $tokens[$i];
        }
        else{
            switch ($tokens[$i][0]){
                //过滤各种PHP注释
                case T_COMMENT:
                case T_DOC_COMMENT:
                    break;
                //过滤空格
                case T_WHITESPACE:
                    if (!$last_space){
                        $stripStr .= ' ';
                        $last_space = true;
                    }
                    break;
                default:
                    $last_space = false;
                    $stripStr .= $tokens[$i][1];
            }
        }
    }
    return $stripStr;
}

该自定义函数有效解决了php_strip_whitespace系统内置去注释空格函数不能正确理解<<<EOT(heredoc)的问题
使用方法
$str = strip_whitespace('<?php'.$str);

前面一定要拼接这个,我也搞不懂,不拼接的话执行生成的结果是错误的结果
php_strip_whitespace
string php_strip_whitespace (string$filename )
如果仅仅是单文件并且没有heredoc的话,还是建议使用快捷的php_strip_whitespace函数
PHP 相关文章推荐
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 PHP
PHP 金额数字转换成英文
May 06 PHP
PHP 读取Postgresql中的数组
Apr 14 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
CodeIgniter常用知识点小结
May 26 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
浅谈如何提高PHP代码的质量
May 28 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 #PHP
解析PHP 5.5 新特性
Jul 02 #PHP
php仿QQ验证码的实例分析
Jul 01 #PHP
计算php页面运行时间的函数介绍
Jul 01 #PHP
php 地区分类排序算法
Jul 01 #PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 #PHP
php 常用算法和时间复杂度
Jul 01 #PHP
You might like
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python连接SQLServer2000的方法详解
2017/04/19 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
总结python中pass的作用
2019/02/27 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Python验证码截取识别代码实例
2020/05/16 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
大专毕业生简历的自我评价
2013/10/20 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang