zl程序教程

您现在的位置是:首页 >  后端

当前栏目

去除php注释和去除空格函数分享

PHP 函数 分享 注释 去除 空格
2023-06-13 09:15:19 时间

虽然php5中已有php_strip_whitespace方法可以返回删除注释和空格后的PHP源码的功能,为了学习,这里为大家提供一个自己的方法,也可以去除代码中的空白和注释,代码如下:

复制代码代码如下:


/**
 *去除代码中的空白和注释
 *@paramstring$content代码内容
 *@returnstring
 */
functionstrip_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注释
               caseT_COMMENT:
               caseT_DOC_COMMENT:
                   break;
               //过滤空格
               caseT_WHITESPACE:
                   if(!$last_space){
                       $stripStr .="";
                       $last_space=true;
                   }
                   break;
               caseT_START_HEREDOC:
                   $stripStr.="<<<THINK\n";
                   break;
               caseT_END_HEREDOC:
                   $stripStr.="THINK;\n";
                   for($k=$i+1;$k<$j;$k++){
                       if(is_string($tokens[$k])&&$tokens[$k]==";"){
                           $i=$k;
                           break;
                       }elseif($tokens[$k][0]==T_CLOSE_TAG){
                           break;
                       }
                   }
                   break;
               default:
                   $last_space=false;
                   $stripStr .=$tokens[$i][1];
           }
       }
   }
   return$stripStr;
}