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 相关文章推荐
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
PHP基于工厂模式实现的计算器实例
Jul 16 PHP
教你识别简单的免查杀PHP后门
Sep 13 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 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
一个php作的文本留言本的例子(四)
2006/10/09 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
php教程之phpize使用方法
2014/02/12 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
js下用层来实现select的title提示属性
2010/02/23 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
js数组操作常用方法
2014/05/08 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
浅谈Python中数据解析
2015/05/05 Python
详解Python中find()方法的使用
2015/05/18 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
python绘制漏斗图步骤详解
2019/03/04 Python
Python list与NumPy array 区分详解
2019/11/06 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
工作疏忽检讨书
2014/01/25 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
高考升学宴答谢词
2015/01/20 职场文书
六一儿童节开幕词
2015/01/29 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
装修公司管理制度
2015/08/05 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS