-2
A
回答
1
您可以使用Tokenizer解析PHP源文件,然後計算註釋。
例
$source = file_get_contents('source.php');
$tokens = token_get_all($source);
$comments = array_filter($tokens, function($token) {
return $token[0] === T_COMMENT;
});
echo "Number of comments: " . count($comments);
注意,這個計算的評論的數量,以另外算你將不得不在$token[1]
計數換行符的行數(實際的評論)。
更新
我想嘗試一下,在這裏你去:
$source = <<<PHP
<?php
/*
* comment 1
*/
function f() {
echo 'hello'; // comment 2
// comment 3
echo 'hello'; /* OK, this counts as */ /* three lines of comments */ // because there are three comments
}
PHP;
$tokens = token_get_all($source);
$comments = array_filter($tokens, function($token) {
return $token[0] === T_COMMENT;
});
$lines = array_reduce($comments, function(&$result, $item) {
return $result += count(explode("\n", trim($item[1])));
}, 0);
echo "Number of comments: ", count($comments), "\n";
echo "Lines of comments: ", $lines;
輸出
Number of comments: 6
Lines of comments: 8
0
您可以使用preg_replace
刪除/* */
標記之間的所有內容,然後對行進行計數。
<?php
$string = <<<END
just a test with multiple line
/*
some comments
test
*/
and some more lines
END;
$lines = explode(chr(10), $string);
echo 'line count: ' . (count($lines)+1) . '<br>';
//line count: 10
$pattern = '/\/\*(.*)\*\//s';
$replacement = '';
$string = preg_replace($pattern, $replacement, $string);
$lines = explode(chr(10), $string);
echo 'line count: ' . (count($lines)+1);
//line count: 6
?>
0
作爲一個起點,你可以嘗試使用PHP Reflection Library getDocComment()但是內嵌批註可能不是空穴來風。
相關問題
- 1. PHP評論代碼
- 2. PHP:評論代碼
- 3. 評論代碼或不評論代碼
- 4. 如何評論PHP代碼
- 5. 評論PHP的代碼/ PerlCritic的PHP?
- 6. netbeans中的評論代碼?
- 7. 使用PHP獲取面板評論數
- 8. 從html代碼中獲取平均評論數 - 從div數中提取數字?
- 9. css是自動評論的PHP代碼?
- 10. PHP代碼只是評論我的html
- 11. 已移至代碼評論評論
- 12. JS代碼:評論
- 13. Jquery代碼評論
- 14. Python Regex中評論代碼
- 15. 從ExpressionEngine中的評論獲取原始代碼
- 16. 獲取DISQUS評論數
- 17. PHP評論數
- 18. CSS嵌套評論多行代碼評論內部其他評論
- 19. 評論我的代碼
- 20. 評論我的Scala代碼
- 21. WordPress的 - 評論html代碼
- 22. 獲取樹評論
- 23. API獲取評論
- 24. Emacs評論/取消評論當前行
- 25. PHP和JavaScript代碼在網絡上的代碼評論
- 26. 獲取Facebook評論插件的評論數
- 27. PHP - WordPress - 獲取評論者憑據
- 28. jquery - 從數據庫中獲取評論
- 29. Programmin Vodoo?評論代碼被執行
- 30. 無法對代碼塊進行評論
'echo count(explode(「\ n」,trim($ str)));' – slash197 2013-03-12 11:32:48
如果您想知道代碼中有多少條評論,只需要計算'/ *'和'//'(和以'#'開始的行) - 這將是近似的(因爲'//'可能在'/ * ... * /'或嵌套註釋,字符串等等內),但可能接近實際。否則,爲了獲得真正的計數,你必須實現一次自動讀取字符,並考慮字符串開始/結束,嵌套註釋等。 – 2013-03-12 11:33:29