Получить все комментарии из файла
Получить все комментарии из php-файла. Используется token_get_all
.
- get-comments.php
<?php class stdinComments { private $txt; public function run() { $this->getText(); $this->getComments(); $this->echoComments(); } private function getText() { $handle = fopen('php://stdin', 'r'); while (!feof($handle)) { $line = fgets($handle); if (empty($line)) continue; $this->txt .= $line; } fclose($handle); } private static $comment = array( T_COMMENT, // All comments since PHP5 // T_ML_COMMENT, // Multiline comments PHP4 only T_DOC_COMMENT // PHPDoc comments ); private $comments = array(); private function getComments() { $tokens = token_get_all($this->txt); foreach($tokens as $token) { if(!in_array($token[0], self::$comment)) continue; $this->comments[] = $token[1]; } } private function echoComments() { foreach($this->comments as $comment) { echo $comment.PHP_EOL; } } } $app = new stdinComments(); $app->run();
Использование:
cat index.php | php ./get-comments.php
Получить из всех PHP-файлов:
find -name '*.php' -print0 | xargs -0 cat | php ./get-comments.php >> all-comments.txt