如何在PHP中读取注释块?

2022-03-15 00:00:00 comments reflection php

我正在做一些自制的自动化文档,因为我有一个布局不太标准的代码库,我想知道读取php文件并抓取挡路评论内容的最好方法是什么。我能想到的唯一方法就是打开文件并逐行读取,但我认为可能有一些内置的魔术可以为我解析文档,类似于反射函数。

每个文件的基本布局如下:

<?php // $Id$
/**
 * Here is this script's documentation, with information in pseudo-javadoc
 * type tags and whatnot.
 *
 * @attr    something    some information about something
 * @attr    etc          etc etc
 */
 // rest of the code goes here.
请注意,这些文件中没有定义任何函数或类,这一点很重要。注释与整个脚本相关。


解决方案

签出Tokenizer。

要获取名为test.php的文件中的所有注释,您需要执行以下操作:

$tokens = token_get_all(file_get_contents("test.php"));
$comments = array();
foreach($tokens as $token) {
    if($token[0] == T_COMMENT || $token[0] == T_DOC_COMMENT) {
        $comments[] = $token[1];
    }
}
print_r($comments);

相关文章