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 相关文章推荐
967 个函式
Oct 09 PHP
PHP 如何向 MySQL 发送数据
Oct 09 PHP
PHP5中使用PDO连接数据库的方法
Aug 01 PHP
php expects parameter 1 to be resource, array given 错误
Mar 23 PHP
php 大数据量及海量数据处理算法总结
May 07 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
php版微信公众平台接口开发之智能回复开发教程
Sep 22 PHP
thinkPHP线上自动加载异常与修复方法实例分析
Dec 01 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
laravel手动创建数组分页的实现代码
Jun 07 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
React diff算法的实现示例
2018/04/20 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
python中字典dict常用操作方法实例总结
2015/04/04 Python
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
Python实现堆排序的方法详解
2016/05/03 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
python邮件发送smtplib使用详解
2020/06/16 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
一套C#面试题
2013/10/09 面试题
大学军训感言400字
2014/03/11 职场文书
伊索寓言教学反思
2014/05/01 职场文书
安全生产计划书
2014/05/04 职场文书
环保建议书300字
2014/05/14 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS