聘我网

新概念招聘3.0

如何自动去除代码中的注释?

vote up0vote downstar

处理前:

<?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();
?>
 

1 个答复

vote up0vote downcheck

使用tokenizer.

$fileStr = file_get_contents('testdemo.php');
$newStr  = '';

$tokens = token_get_all($fileStr);

foreach ($tokens as $token) {
    $commentTokens = array(T_COMMENT);

    if (defined('T_DOC_COMMENT'))
        $commentTokens[] = T_DOC_COMMENT;
    if (defined('T_ML_COMMENT'))
        $commentTokens[] = T_ML_COMMENT;

    if (is_array($token)) {
        if (in_array($token[0], $commentTokens))
            continue;

        $token = $token[1];
    }

    $newStr .= $token;
}

file_put_contents('testdemo.done.php',$newStr);
链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.