PHP: Tokenizer関数 - Manual
PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links | my php.net 
search for in the  
<tidyNode->isPhptoken_get_all>
view the version of this page
Last updated: Tue, 21 Dec 2004

CXX. Tokenizer関数

導入

tokenizer関数は、Zend Engineに組み込まれたPHP tokenizerへのインター フェイスを提供します。以下の関数により、 字句解析レベルの言語処理を行うことなく、PHPソースを解析/修正する ツールを作成することが可能となります。

トークンに関する付録も参照して下さい。

要件

これらの関数は、標準モジュールの一部として利用可能であり、常に使用できます。

インストール手順

PHP 4.3.0以降、以下の関数はデフォルトで有効となっています。 これ以前のバージョンの場合、 --enable-tokenizerを指定して PHPをコンパイルする必要があります。 --disable-tokenizerを指定すること により、tokenizerサポートを無効とすることができます。

Windows版のPHPには この拡張モジュールのサポートが組み込まれています。これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。

注意: tokenizerの組込みサポートはPHP 4.3.0で利用可能となりました。

定義済みの定数

これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。

T_INCLUDE (integer)

T_INCLUDE_ONCE (integer)

T_EVAL (integer)

T_REQUIRE (integer)

T_REQUIRE_ONCE (integer)

T_LOGICAL_OR (integer)

T_LOGICAL_XOR (integer)

T_LOGICAL_AND (integer)

T_PRINT (integer)

T_PLUS_EQUAL (integer)

T_MINUS_EQUAL (integer)

T_MUL_EQUAL (integer)

T_DIV_EQUAL (integer)

T_CONCAT_EQUAL (integer)

T_MOD_EQUAL (integer)

T_AND_EQUAL (integer)

T_OR_EQUAL (integer)

T_XOR_EQUAL (integer)

T_SL_EQUAL (integer)

T_SR_EQUAL (integer)

T_BOOLEAN_OR (integer)

T_BOOLEAN_AND (integer)

T_IS_EQUAL (integer)

T_IS_NOT_EQUAL (integer)

T_IS_IDENTICAL (integer)

T_IS_NOT_IDENTICAL (integer)

T_IS_SMALLER_OR_EQUAL (integer)

T_IS_GREATER_OR_EQUAL (integer)

T_SL (integer)

T_SR (integer)

T_INC (integer)

T_DEC (integer)

T_INT_CAST (integer)

T_DOUBLE_CAST (integer)

T_STRING_CAST (integer)

T_ARRAY_CAST (integer)

T_OBJECT_CAST (integer)

T_BOOL_CAST (integer)

T_UNSET_CAST (integer)

T_NEW (integer)

T_EXIT (integer)

T_IF (integer)

T_ELSEIF (integer)

T_ELSE (integer)

T_ENDIF (integer)

T_LNUMBER (integer)

T_DNUMBER (integer)

T_STRING (integer)

T_STRING_VARNAME (integer)

T_VARIABLE (integer)

T_NUM_STRING (integer)

T_INLINE_HTML (integer)

T_CHARACTER (integer)

T_BAD_CHARACTER (integer)

T_ENCAPSED_AND_WHITESPACE (integer)

T_CONSTANT_ENCAPSED_STRING (integer)

T_ECHO (integer)

T_DO (integer)

T_WHILE (integer)

T_ENDWHILE (integer)

T_FOR (integer)

T_ENDFOR (integer)

T_FOREACH (integer)

T_ENDFOREACH (integer)

T_DECLARE (integer)

T_ENDDECLARE (integer)

T_AS (integer)

T_SWITCH (integer)

T_ENDSWITCH (integer)

T_CASE (integer)

T_DEFAULT (integer)

T_BREAK (integer)

T_CONTINUE (integer)

T_OLD_FUNCTION (integer)

T_OLD_FUNCTION is not defined in PHP 5.

T_FUNCTION (integer)

T_CONST (integer)

T_RETURN (integer)

T_USE (integer)

T_GLOBAL (integer)

T_STATIC (integer)

T_VAR (integer)

T_UNSET (integer)

T_ISSET (integer)

T_EMPTY (integer)

T_CLASS (integer)

T_EXTENDS (integer)

T_OBJECT_OPERATOR (integer)

T_DOUBLE_ARROW (integer)

T_LIST (integer)

T_ARRAY (integer)

T_LINE (integer)

T_FILE (integer)

T_COMMENT (integer)

T_ML_COMMENT (integer)

T_ML_COMMENT is not defined in PHP 5. All comments in PHP 5 are of token T_COMMENT.

T_DOC_COMMENT (integer)

T_DOC_COMMENT was introduced in PHP 5.

T_OPEN_TAG (integer)

T_OPEN_TAG_WITH_ECHO (integer)

T_CLOSE_TAG (integer)

T_WHITESPACE (integer)

T_START_HEREDOC (integer)

T_END_HEREDOC (integer)

T_DOLLAR_OPEN_CURLY_BRACES (integer)

T_CURLY_OPEN (integer)

T_PAAMAYIM_NEKUDOTAYIM (integer)

T_DOUBLE_COLON (integer)

T_INTERFACE (integer)

PHP 5 only.

T_IMPLEMENTS (integer)

PHP 5 only.

T_CLASS_C (integer)

PHP 5 only.

T_FUNC_C (integer)

PHP 5 only.

T_METHOD_C (integer)

PHP 5 only.

T_ABSTRACT (integer)

PHP 5 only.

T_CATCH (integer)

PHP 5 only.

T_FINAL (integer)

PHP 5 only.

T_INSTANCEOF (integer)

PHP 5 only.

T_PRIVATE (integer)

PHP 5 only.

T_PROTECTED (integer)

PHP 5 only.

T_PUBLIC (integer)

PHP 5 only.

T_THROW (integer)

PHP 5 only.

T_TRY (integer)

PHP 5 only.

T_CLONE (integer)

PHP 5 only.

以下にtokenizerを用いた簡単なPHPスクリプト例を示します。この例は、 PHPファイルを読み込み、ソースから全てのコメントを削除、コードのみ を出力するものです。

例 1. tokenizerによりコメントを削除する

<?php
  $source
= file_get_contents("somefile.php");
 
$tokens = token_get_all($source);
  foreach (
$tokens as $token) {
   if (
is_string($token)) {
    
// 簡単な1文字毎のトークン
    
echo $token;
   } else {
    
// トークン配列
    
list($id, $text) = $token;
     switch(
$id) {
       case
T_COMMENT:
       case
T_ML_COMMENT:
        
// コメントの場合は何もしない
        
break;
       default:
        
// それ以外の場合 -> "そのまま"出力
        
echo $text;
         break;
     }
   }
  }
?>
目次
token_get_all -- 指定したソースをPHPトークンに分割する
token_name -- 指定したPHPトークンのシンボル名を取得する


add a note add a note User Contributed Notes
Tokenizer関数
There are no user contributed notes for this page.

<tidyNode->isPhptoken_get_all>
 Last updated: Tue, 21 Dec 2004
show source | credits | sitemap | contact | advertising | mirror sites 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: /
Last updated: Mon Mar 14 08:13:06 2005 Local time zone must be set--see zic manual page