gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:50:04 26 4
gpt4 key购买 nike

从 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 - 这就是谷歌上出现的问题。

最佳答案

我会使用 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 - 自动从 PHP 代码中删除注释的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/503871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com