當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。