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

 更新时间:2013年07月02日 10:54:56   作者:  
我自己尝试过正则,但是发现在过滤单行注释等方面不尽如意,很容易出错。无意中看到了某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和javascript之间变量的传递实现代码

    php和javascript之间变量的传递实现代码

    本文提供一种解决php和javascript之间变量的传递的方法,需要的朋友可以参考下
    2012-12-12
  • PHP最常用的正则表达式

    PHP最常用的正则表达式

    本文将对PHP最常用的正则表达式进行整理介绍。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • php7连接MySQL实现简易查询程序的方法

    php7连接MySQL实现简易查询程序的方法

    这篇文章主要给大家介绍了关于php7连接MySQL实现简易查询程序的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • PHP结构型模式之装饰器模式

    PHP结构型模式之装饰器模式

    这篇文章主要介绍了PHP结构型模式之装饰器模式,装饰器模式是一种结构型模式,它允许你在运行时为一个对象动态地添加新的行为,而不影响其原始的行为。这种类型的设计模式属于结构型模式,它结合了透明性和多样性
    2023-04-04
  • PHP实现广度优先搜索算法(BFS,Broad First Search)详解

    PHP实现广度优先搜索算法(BFS,Broad First Search)详解

    这篇文章主要介绍了PHP实现广度优先搜索算法(BFS,Broad First Search),简单描述了广度优先搜索算法的原理并结合具体实例分析了php实现广度优先搜索算法的步骤与相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • PHP数组基本用法与知识点总结

    PHP数组基本用法与知识点总结

    这篇文章主要介绍了PHP数组基本用法与知识点,总结整理了PHP数组基本概念、用法、定义、访问、删除等相关操作技巧,需要的朋友可以参考下
    2020-06-06
  • php查找字符串出现次数的方法

    php查找字符串出现次数的方法

    这篇文章主要介绍了php查找字符串出现次数的方法,较为详细的介绍了substr_count函数的用法,并补充说明了相关的字符串操作函数,具有一定的实用价值,需要的朋友可以参考下
    2014-12-12
  • php对xml文件的增删改查操作实现方法分析

    php对xml文件的增删改查操作实现方法分析

    这篇文章主要介绍了php对xml文件的增删改查操作实现方法,结合具体实例形式分析了php对xml文件的载入及xml节点的读取、修改、查询等相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • php实现的树形结构数据存取类实例

    php实现的树形结构数据存取类实例

    这篇文章主要介绍了php实现的树形结构数据存取类,实例演示了以树形数据结构存取数据的实现方法,对于学习基于PHP的数据结构有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境

    Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境

    这篇文章主要介绍了Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境,本文讲解了使用Brew手动搭建PHP的开发环境,包括Apache、Nginx、PHP、MySQL、MongoDB、PHPMyAdmin等配置,需要的朋友可以参考下
    2015-03-03

最新评论