parseInfo($file); if ($info['name'] != '' && $info['package'] != '') { $result[$file] = $info; } } return $result; } public function parseInfo($file){ $tokens = token_get_all(file_get_contents($file)); $isDoc = false; $info = array( 'name' => '', 'author' => '', 'link' => '', 'package' => '', 'version' => '', 'description' => '', 'param' => '' ); foreach ($tokens as $token) { if (is_array($token) && T_DOC_COMMENT == $token[0]) { /** 分行读取 */ $lines = preg_split("(\r|\n)", $token[1]); foreach ($lines as $line) { $line = trim($line); if (!empty($line) && '*' == $line[0]) { $line = trim(substr($line, 1)); if (!empty($line) && '@' == $line[0]) { $line = trim(substr($line, 1)); $args = explode(' ', $line); $key = array_shift($args); if (isset($key)) { $info[$key] = trim(implode(' ', $args)); } } } } } } return $info; } public function action() { } }