萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> 去除PHP代碼中的空白和注釋

去除PHP代碼中的空白和注釋

   PHP內置了一個php_strip_whitespace方法用於讀取php文件並去除代碼中的空白和注釋,但不支持直接讀取內容去除空白和注釋,下面的方法則可以支持讀取字符串內容,並且ThinkPHP框架內置了該方法。

  /**

  * 去除代碼中的空白和注釋

  * @param string $content 代碼內容

  * @return string

  */

  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;

  case T_START_HEREDOC:

  $stripStr .= "<<

  break;

  case T_END_HEREDOC:

  $stripStr .= "THINK;n";

  for($k = $i+1; $k < $j; $k++) {

  if(is_string($tokens[$k]) && $tokens[$k] == ';') {

  $i = $k;

  break;

  } else if($tokens[$k][0] == T_CLOSE_TAG) {

  break;

  }

  }

  break;

  default:

  $last_space = false;

  $stripStr .= $tokens[$i][1];

  }

  }

  }

  return $stripStr;

  }

copyright © 萬盛學電腦網 all rights reserved