如何在PHP中读取注释块?

如何在PHP中读取注释块?,php,reflection,comments,Php,Reflection,Comments,我正在做一些自制的自动化文档,因为我有一个布局不太标准的代码库,我想知道读取PHP文件并获取注释块内容的最佳方法是什么。我能想到的唯一方法是打开文件并逐行读取,但我认为可能有一些内置的魔法可以为我解析文档,类似于反射函数 每个文件的基本布局如下所示: <?php // $Id$ /** * Here is this script's documentation, with information in pseudo-javadoc * type tags and whatnot. *

我正在做一些自制的自动化文档,因为我有一个布局不太标准的代码库,我想知道读取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.
签出

要获取名为
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);
查看PHP5附带的,更具体地说是
getDocComment()

PHP5附带了一个完整的反射 添加以下功能的API 逆向工程类、接口、, 功能和方法以及 扩展。此外 反射API还提供了 检索函数的文档注释, 类和方法


此外,根据代码库的大小,修改注释以适应语法可能会减少工作量,这似乎已经非常接近了。

这确实是一个非常奇怪的布局,恐怕需要非常具体的输出。反射函数似乎只适用于函数、类、对象等。你能给它传递一个要解析的文件吗?+1 phpDocumentor,特别是如果代码已经是它的格式化程序。我认为这个答案可能会有所帮助