首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

token_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

token_get_all - 将给定源分割为PHP令牌

描述

代码语言:javascript
复制
array token_get_all ( string $source [, int $flags = 0 ] )

token_get_all()source使用Zend引擎的词法扫描器将给定的字符串解析为PHP语言令牌。

有关解析器令牌的列表,请参阅解析器令牌列表,或使用token_name()将令牌值转换为其字符串表示形式。

参数

source

PHP源代码解析。

flags

有效标志:

  • TOKEN_PARSE - Recognises the ability to use reserved words in specific contexts. Return Values An array of token identifiers. Each individual token identifier is either a single character (i.e.: ;, ., >, !, etc...), or a three element array containing the token index in element 0, the string content of the original token in element 1 and the line number in element 2. ChangelogVersionDescription7.0.0Added the optional flags parameter along with the TOKEN_PARSE flag.5.2.2Line numbers are returned in element 2ExamplesExample #1 token_get_all() example<?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; } } ?>?The above example will output something similar to:??Line 1: T_OPEN_TAG ('<?php ') Line 1: T_ECHO ('echo') Line 1: T_WHITESPACE (' ') Line 1: T_CLOSE_TAG ('?>')?Example #2 token_get_all() incorrect usage example<?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; } } ?>?The above example will output something similar to:??Line 1: T_INLINE_HTML ('/* comment */')? Note in the previous example that the string is parsed as T_INLINE_HTML rather than the expected T_COMMENT. This is because no open tag was used in the code provided. This would be equivalent to putting a comment outside of the PHP tags in a normal file. Example #3 token_get_all() on a class using a reserved word example <?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; } } ?>?The above example will output something similar to:??T_OPEN_TAG T_WHITESPACE T_CLASS T_WHITESPACE T_STRING T_CONST T_WHITESPACE T_STRING T_LNUMBER? Without the TOKEN_PARSE flag, the penultimate token (T_STRING) would have been T_PUBLIC. See Also
  • token_name() - 获取给定PHP令牌的符号名称

token_name →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com