在不影响语法的情况下高效删除 PHP 代码注释
为了有效删除 PHP 代码中的注释,同时保留嵌入的 HTML,token_get_all() 提供了可靠的解决方案。下面是一个示例实现:
<code class="php"><?php $fileStr = file_get_contents('path/to/file'); $newStr = ''; $commentTokens = array(T_COMMENT); if (defined('T_DOC_COMMENT')) { $commentTokens[] = T_DOC_COMMENT; // PHP 5 } if (defined('T_ML_COMMENT')) { $commentTokens[] = T_ML_COMMENT; // PHP 4 } $tokens = token_get_all($fileStr); foreach ($tokens as $token) { if (is_array($token)) { if (in_array($token[0], $commentTokens)) { continue; } $token = $token[1]; } $newStr .= $token; } echo $newStr; ?></code>
此解决方案假定 PHP 4 和 5 兼容。它迭代代码标记,跳过任何属于注释类型的内容(包括标准注释、文档注释和 PHP 4 样式多行注释),确保保留嵌入的 HTML。生成的 $newStr 包含修改后的代码,没有注释。
以上是如何在不影响语法的情况下有效地从 PHP 代码中删除注释?的详细内容。更多信息请关注PHP中文网其他相关文章!