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 相关文章推荐
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
php 数组的合并、拆分、区别取值函数集
Feb 15 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 PHP
跟我学Laravel之安装Laravel
Oct 15 PHP
PHP7 新特性详细介绍
Sep 06 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
php生成二维码图片方法汇总
Dec 17 PHP
php curl优化下载微信头像的方法总结
Sep 07 PHP
PHP实现浏览器格式化显示XML的方法示例
Jan 22 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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 substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&amp;Firefox] 有文档和例子
2007/05/30 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
js实现旋转木马效果
2017/03/17 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
消防安全责任书范本
2014/04/15 职场文书
大四毕业生自荐书
2014/07/05 职场文书
计算机实训报告范文
2014/11/05 职场文书
司机岗位职责范本
2015/04/10 职场文书
太空授课观后感
2015/06/17 职场文书
学术会议开幕词
2016/03/03 职场文书
升职感谢领导的话语及升职感谢信
2019/06/24 职场文书
windows server2008 开启端口的实现方法
2022/06/25 Servers