如何使用php tokenizer在codeigniter中读取php文件的特定文本

时间:2018-01-13 07:08:28

标签: php codeigniter

我想在codeigniter中使用php tokenizer从php文件中读取注释文本。

PHP文件

<?php
   //example of php tokenizer
   //@module   core
   //@author   VR
?>

如何在变量中获取模块或作者姓名。 感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用token_get_all()T_COMMENT常量实现此目的,而不是只需要解析moduleauthor

因此,考虑到要解析的示例文件内容,您可以这样做:

<?php
$source = file_get_contents('/path/to/file.php');
$tokens = token_get_all($source);

$result = [];
foreach ($tokens as $token) {
   if ($token[0] === T_COMMENT) {
        $token[1] = trim($token[1], '/ ');

        if (in_array(substr($token[1], 0, 7), ['@module', '@author'])) {
            $result[substr($token[1], 1, 6)] = trim(substr($token[1], 7));
        }
   }
}

print_r($result);

/*
Array
(
    [module] => core
    [author] => VR
)
*/