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程序实现支持页面后退的两种方法
Jun 30 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
PHP中使用memcache存储session的三种配置方法
Apr 05 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
php使用file函数、fseek函数读取大文件效率对比分析
Nov 04 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 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网站基础优化方法小结
2008/09/29 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
给ECShop添加最新评论
2015/01/07 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
PHP 裁剪图片
2021/03/09 PHP
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
用Python实现随机森林算法的示例
2017/08/24 Python
python安装教程
2018/02/28 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
《自选商场》教学反思
2014/02/14 职场文书
地质灾害防治方案
2014/05/14 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis
浅谈Python中对象是如何被调用的
2022/04/06 Python