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 学习路线与时间表
Feb 21 PHP
PHP中获取文件扩展名的N种方法小结
Feb 27 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
Jun 29 PHP
PHP生成不同颜色、不同大小的tag标签函数
Sep 23 PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 PHP
php实现的xml操作类
Jan 15 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
PHP连接MySQL进行增、删、改、查操作
Feb 19 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 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
xml+php动态载入与分页
2006/10/09 PHP
PHP+javascript模拟Matrix画面
2006/10/09 PHP
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
php查询操作实现投票功能
2016/05/09 PHP
Yii2如何批量添加数据
2016/05/17 PHP
utf8的编码算法 转载
2006/12/27 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
Python装饰器基础详解
2016/03/09 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
python实现图片批量压缩程序
2018/07/23 Python
Python中正则表达式的用法总结
2019/02/22 Python
python制作朋友圈九宫格图片
2019/11/03 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
初二物理教学反思
2014/01/29 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
时尚女魔头观后感
2015/06/04 职场文书