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 に答える