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 相关文章推荐
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
第十节--抽象方法和抽象类
Nov 16 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
php笔记之:php函数range() round()和list()的使用说明
Apr 26 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
Jul 28 PHP
php输出xml属性的方法
Mar 19 PHP
学习php设计模式 php实现备忘录模式(Memento)
Dec 09 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 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循环获取GET和POST值的代码
2008/04/09 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
用Python的Django框架完成视频处理任务的教程
2015/04/02 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
python访问hdfs的操作
2020/06/06 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
开放系统互连参考模型
2016/06/29 面试题
中软国际Java程序员机试题
2012/08/19 面试题
儿科护士实习自我鉴定
2013/10/17 职场文书
英文版餐饮运营管理求职信
2013/11/06 职场文书
英文导游欢迎词
2014/01/11 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
颐和园导游词400字
2015/01/30 职场文书
爱心捐款活动总结
2015/05/09 职场文书
教师素质教育心得体会
2016/01/19 职场文书
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript