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 相关文章推荐
使用php4加速网络传输
Oct 09 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
php字符串分割函数explode的实例代码
Feb 07 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
php微信公众号开发之欢迎老朋友
Oct 20 PHP
PHP抽象类和接口用法实例详解
Jul 20 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 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
easyui的tabs update正确用法分享
2014/03/21 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
javascript 进度条 实现代码
2009/07/30 Javascript
jquery 问答知识整理
2010/02/11 Javascript
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
python动态网页批量爬取
2016/02/14 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
python实现Decorator模式实例代码
2018/02/09 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
工商管理本科毕业生求职信范文
2013/10/05 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS