2

该文件如下所示:

<?php
/**
 *  Title
 *
 *  Description
 *  bla bla..
 *
 *  @since 1.0
 *  @author lolcat
 */





/**
 *  Some class..
 *
 *  @since 1.0
 */
class BlaBla{

}
..

我想从中获得第一个 DocComment。用PHP可以吗?

反射似乎有这样的功能,但它只适用于类或函数,而不是文件:(

4

1 回答 1

4

这种事情有一个基本的扩展。它被称为Tokenizer

使用token_get_all()功能。

返回数组中的每个标记都有它的 id。有定义它们的全局常量:http ://www.php.net/manual/en/tokens.php 。

如果您使用 PHP >= 5.3:

$s = file_get_contents('tokexample.php');

$docblock = reset(array_filter(token_get_all($s), 
                  function($item) { 
                      return $item[0] == T_DOC_COMMENT; 
                  }));

echo $docblock[1];

/**
 *  Title
 *
 *  Description
 *  bla bla..
 *
 *  @since 1.0
 *  @author lolcat
 */

别的:

function filter($item) {
    return $item[0] == T_DOC_COMMENT;
}

$docblock = reset(array_filter(token_get_all($s), "filter"));

echo $docblock[1];
于 2012-07-23T20:38:43.767 回答