PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)

2015-01-24信息快讯网

我自己尝试过正则,但是发现在过滤单行注释等方面不尽如意,很容易出错。无意中看到了某sns里面的strip_whitespace函数,特进行分享,希望能对需要的朋友有所帮助

最近我从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去除换行(回车换行)的三种方法
php的memcache类分享(memcache队列)
php使用codebase生成随机数
php中stream(流)的用法
PHP对接微信公众平台消息接口开发流程教程
php断点续传之如何分割合并文件
php动态生成函数示例
php5.3 goto函数介绍和示例
php ctype函数中文翻译和示例
php遍历文件夹下的所有文件和子文件夹示例
php读取目录所有文件信息dir示例
PHP将两个关联数组合并函数提高函数效率
PHP读取文件内容后清空文件示例代码
PHP处理SQL脚本文件导入到MySQL的代码实例
去除php注释和去除空格函数分享
discuz加密解密函数使用方法和中文注释
php实现图形显示Ip地址的代码及注释
Zend studio文件注释模板设置方法
解析array splice的移除数组中指定键的值,返回一个新的数组
浅析php中如何在有限的内存中读取大文件
解析PHP 5.5 新特性
php仿QQ验证码的实例分析
计算php页面运行时间的函数介绍
php 地区分类排序算法
关于php 接口问题(php接口主要也就是运用curl,curl函数)
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
php小经验:解析preg_match与preg_match_all 函数
解析php session_set_save_handler 函数的用法(mysql)
使用PHP获取当前url路径的函数以及服务器变量
关于PHPDocument 代码注释规范的总结
php中的注释、变量、数组、常量、函数应用介绍
©2014-2024 dbsqp.com