首页 > 语言 > PHP > 正文

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

2024-09-04 11:43:26
字体:
来源:转载
供稿:网友

这篇文章主要介绍了去除php注释和去除空格函数,php5中已提供相同功能的函数,这里只为学习PHP,需要的朋友可以参考下。

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

  1. /** 
  2.  * 去除代码中的空白和注释 
  3.  * @param string $content 代码内容 
  4.  * @return string 
  5.  */ 
  6. function strip_whitespace($content) { 
  7.     $stripStr   = ''
  8.     //分析php源码 
  9.     $tokens     = token_get_all($content); 
  10.     $last_space = false; 
  11.     for ($i = 0, $j = count($tokens); $i < $j$i++) { 
  12.         if (is_string($tokens[$i])) { 
  13.             $last_space = false; 
  14.             $stripStr  .= $tokens[$i]; 
  15.         } else { 
  16.             switch ($tokens[$i][0]) { 
  17.                 //过滤各种PHP注释 
  18.                 case T_COMMENT: 
  19.                 case T_DOC_COMMENT: 
  20.                     break
  21.                 //过滤空格 
  22.                 case T_WHITESPACE: 
  23.                     if (!$last_space) { 
  24.                         $stripStr  .= ' '
  25.                         $last_space = true; 
  26.                     } 
  27.                     break
  28.                 case T_START_HEREDOC: 
  29.                     $stripStr .= "<<<THINK/n"
  30.                     break
  31.                 case T_END_HEREDOC: 
  32.                     $stripStr .= "THINK;/n"
  33.                     for($k = $i+1; $k < $j$k++) { 
  34.                         if(is_string($tokens[$k]) && $tokens[$k] == ';') { 
  35.                             $i = $k
  36.                             break
  37.                         } else if($tokens[$k][0] == T_CLOSE_TAG) { 
  38.                             break
  39.                         } 
  40.                     } 
  41.                     break
  42.                 default
  43.                     $last_space = false; 
  44.                     $stripStr  .= $tokens[$i][1]; 
  45.             } //Vevb.com 
  46.         } 
  47.     } 
  48.     return $stripStr

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表