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 相关文章推荐
实现树状结构的两种方法
Oct 09 PHP
聊天室php&amp;mysql(六)
Oct 09 PHP
PHP 巧用数组降低程序的时间复杂度
Jan 01 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
php以post形式发送xml的方法
Nov 04 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
Windows2003下php5.4安装配置教程(IIS)
Jun 30 PHP
php简单中奖算法(实例)
Aug 15 PHP
PHP静态延迟绑定和普通静态效率的对比
Oct 20 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
php 使用mpdf实现指定字段配置字体样式的方法
Jul 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 CKEditor 上传图片实现代码
2009/11/06 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
用js实现放大镜效果
2020/10/28 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
python实现simhash算法实例
2014/04/25 Python
介绍Python中的一些高级编程技巧
2015/04/02 Python
python使用str &amp; repr转换字符串
2016/10/13 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
python中常用的数据结构介绍
2021/01/12 Python
python实现计算图形面积
2021/02/22 Python
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
linux面试题参考答案(4)
2013/01/28 面试题
生物专业个人自荐信范文
2013/11/29 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
西游记读书笔记
2015/06/25 职场文书