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 相关文章推荐
Dedecms常用函数解析
Feb 01 PHP
处理php自动反斜杠的函数代码
Jan 05 PHP
PHP 模拟$_PUT实现代码
Mar 15 PHP
PHP在字符断点处截断文字的实现代码
Apr 21 PHP
PHP中array_slice函数用法实例详解
Nov 25 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
php一个解析字符串排列数组的方法
May 12 PHP
再推荐十款免费的php开发工具
Nov 09 PHP
PHP结合Mysql数据库实现留言板功能
Mar 04 PHP
深入解析PHP的Laravel框架中的event事件操作
Mar 21 PHP
PHP实现递归目录的5种方法
Oct 27 PHP
PHP房贷计算器实例代码,等额本息,等额本金
Apr 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
十天学会php(2)
2006/10/09 PHP
PHP 时间日期操作实战
2011/08/26 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
javascript 打印页面代码
2009/03/24 Javascript
JS的反射问题
2010/04/07 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
python在非root权限下的安装方法
2018/01/23 Python
使用Python读取大文件的方法
2018/02/11 Python
Python中的pack和unpack的使用
2018/03/12 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
办公室前台岗位职责范本
2013/12/10 职场文书
社区活动邀请函范文
2014/01/29 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
教师学期末个人总结
2015/02/13 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
工商局调档介绍信
2015/10/22 职场文书
mysql如何能有效防止删库跑路
2021/10/05 MySQL
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS