Существует функция token_get_all($code)
, которая может использоваться для этого, и она более надежна, чем вы могли подумать.
Вот несколько примеров кода для получения всех комментариев из файла (это не проверено, но должно бытьдостаточно, чтобы начать):
<?php
$source = file_get_contents( "file.php" );
$tokens = token_get_all( $source );
$comment = array(
T_COMMENT, // All comments since PHP5
T_ML_COMMENT, // Multiline comments PHP4 only
T_DOC_COMMENT // PHPDoc comments
);
foreach( $tokens as $token ) {
if( !in_array($token[0], $comment) )
continue;
// Do something with the comment
$txt = $token[1];
}
?>