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 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
使用PHP批量生成随机用户名
Jul 10 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
php自动加载的两种实现方法
Jun 21 PHP
PHP中通过语义URL防止网站被攻击的方法分享
Sep 08 PHP
PHP删除数组中特定元素的两种方法
Jul 02 PHP
php中file_get_content 和curl以及fopen 效率分析
Sep 19 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 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生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
javascript模块化简单解析
2016/04/07 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
基于vue的video播放器的实现示例
2021/02/19 Vue.js
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
Python二分法搜索算法实例分析
2015/05/11 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
你应该知道的python列表去重方法
2017/01/17 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
python实现趣味图片字符化
2019/04/30 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
Python调用C/C++的方法解析
2020/08/05 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
python3中数组逆序输出方法
2020/12/01 Python
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
财务出纳岗位职责
2014/02/03 职场文书
社区党支部承诺书
2015/04/29 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书