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 相关文章推荐
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 PHP
用mysql触发器自动更新memcache的实现代码
Oct 11 PHP
用php或asp创建网页桌面快捷方式的代码
Mar 23 PHP
php设计模式 Singleton(单例模式)
Jun 26 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
Yii框架中memcache用法实例
Dec 03 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
php数据序列化测试实例详解
Aug 12 PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 PHP
php 实现银联商务H5支付的示例代码
Oct 12 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 页面编码声明方法详解(header或meta)
2010/03/12 PHP
php代码运行时间查看类代码分享
2011/08/06 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
详解Python中的strftime()方法的使用
2015/05/22 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
python中的字符串内部换行方法
2018/07/19 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
取保候审保证书
2014/04/30 职场文书
大班亲子运动会方案
2014/06/10 职场文书
听证会主持词
2015/07/03 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书