当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP token_get_all()用法及代码示例



token_get_all() 函数可以将给定的源拆分为 PHP 令牌。

用法

array token_get_all( string $source [, int $flags = 0 ] )

token_get_all() 函数可以使用 Zend 引擎的词法扫描器将给定的源字符串解析为 PHP 语言标记。对于解析器标记列表,我们可以使用 token_name() 函数将标记值转换为其字符串表示。

token_get_all() 函数可以返回一个令牌标识符数组。每个单独的标记标识符或者是单个字符(即:;、.、>、! 等...),或者是包含元素 0 中的标记索引、元素 1 中原始标记的字符串内容和行号的 three-element 数组元素 2。

示例1

<?php
   $tokens = token_get_all("<?php echo; ?>");

   foreach($tokens as $token) {
      if(is_array($token)) {
         echo "Line {$token[2]}:", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
      }
   }
?>

示例2

<?php
   $tokens = token_get_all("/* comment */");

   foreach($tokens as $token) {
      if(is_array($token)) {
         echo "Line {$token[2]}:", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
      }
   }
?>

示例 3

<?php
   $source = <<<"code"
   <?php
   class A {
      const PUBLIC = 1;
   }
   code;

   $tokens = token_get_all($source, TOKEN_PARSE);

   foreach($tokens as $token) {
      if(is_array($token)) {
         echo token_name($token[0]) , PHP_EOL;
      }
   }
?>

相关用法


注:本文由纯净天空筛选整理自 PHP - token_get_all() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。