Tokenizer 関数とは? わかりやすく解説

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 をコンパイルするか、あるいは実行時に 動的にモジュールを読み込むと、付録 Q. パーサトークンの一覧 に挙げられている トークンが定数として定義されます。

以下に tokenizer を用いた簡単な PHP スクリプトの例を示します。この例は、 PHP ファイルを読み込み、ソースから全てのコメントを削除し、コードのみを 出力するものです。
例 2379. tokenizer によりコメントを削除する
<?php
/*
 * T_ML_COMMENT は PHP 5 には存在しません。
 * 以下の 3 行で、古いバージョンとの互換性を確保するために
 * これらを定義しています。
 *
 * その次の 2 行では、PHP 5 にのみ存在する T_DOC_COMMENT を定義しています。
 * T_ML_COMMENT が存在するかどうかで PHP 4 かどうかを判断しています。
 */
if (!defined('T_ML_COMMENT')) {
   define('T_ML_COMMENT', T_COMMENT);
} else {
   define('T_DOC_COMMENT', T_ML_COMMENT);
}

$source = file_get_contents('example.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: // we've defined this
           case T_DOC_COMMENT: // and this
               // コメントの場合は何もしない
               break;

           default:
               // それ以外の場合 -> "そのまま"出力
               echo $text;
               break;
       }
   }
}
?>

目次

token_get_all — 指定したソースを PHP トークンに分割する
token_name — 指定した PHP トークンのシンボル名を取得する

「Tokenizer 関数」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Tokenizer 関数」の関連用語

Tokenizer 関数のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Tokenizer 関数のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2024 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2024 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2024 GRAS Group, Inc.RSS