该文件如下所示:
<?php
/**
* Title
*
* Description
* bla bla..
*
* @since 1.0
* @author lolcat
*/
/**
* Some class..
*
* @since 1.0
*/
class BlaBla{
}
..
我想从中获得第一个DocComment。用PHP可以吗?
反射似乎有这样的功能,但它只适用于类或函数,而不适用于文件:(
答案 0 :(得分:4)
这种事情有一个基本的扩展。它被称为Tokenizer。
使用token_get_all()
功能。
返回数组中的每个标记都有它的id。有一些全局常量可以定义它们:http://www.php.net/manual/en/tokens.php。
如果您使用PHP&gt; = 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];