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 相关文章推荐
在PWS上安装PHP4.0正式版
Oct 09 PHP
ADODB类使用
Nov 25 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
php addslashes及其他清除空格的方法是不安全的
Jan 25 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
ThinkPHP实现一键清除缓存方法
Jun 26 PHP
PHP远程采集图片详细教程
Jul 01 PHP
thinkphp 验证码 的使用小结
May 07 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
PHP实现的获取文件mimes类型工具类示例
Apr 08 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 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
用文本作数据处理
2006/10/09 PHP
PHP4实际应用经验篇(1)
2006/10/09 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
NodeJS实现微信公众号关注后自动回复功能
2017/05/31 NodeJs
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
jquery 插件重新绑定的处理方法分析
2019/11/23 jQuery
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
python实现复制整个目录的方法
2015/05/12 Python
python try 异常处理(史上最全)
2019/03/07 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
深入理解Python 多线程
2020/06/16 Python
django rest framework 过滤时间操作
2020/07/12 Python
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
汇智创新科技发展有限公司
2015/12/06 面试题
写好自荐信的几个要点
2013/12/26 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang