自动从PHP代码中删除注释的最佳方法

从PHP文件中删除注释的最佳方法是什么?

我想做一些与strip-whitespace()类似的事情-但它也不应该删除换行符。

例如:

我要这个:

<?PHP

// something

if ($whatsit) {

do_something(); # we do something here

echo '<html>Some embedded HTML</html>';

}

/* another long

comment

*/

some_more_code();

?>

成为:

<?PHP

if ($whatsit) {

do_something();

echo '<html>Some embedded HTML</html>';

}

some_more_code();

?>

(尽管如果在删除注释的地方仍然留有空行,那是不可能的)。

由于可能需要保留嵌入式html,因此这可能是不可能的-那是什么导致了google上出现的问题。

回答:

我会使用tokenizer。这是我的解决方案。它应该在PHP

4和5上都可以使用:

$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;

以上是 自动从PHP代码中删除注释的最佳方法 的全部内容, 来源链接: utcz.com/qa/406506.html

回到顶部