Tokenizer関数は、Zend Engineを用いてPHPソースコードの字句解析を行うという、いったい誰がどんな時に使用するのか全く見当が付かない関数です。
ソース。
実行結果。
このように、PHPがプログラムを実行するうえで必要なトークン単位にソースを分割してくれます。
こんなのネタ以外で使う人なんていないだろと思いきや、ソースをPHPからC++に変換するという、これまた意味の分からないプロジェクトで使われていました。
誰がどんな時に使うんだそれ。
ソース。
<?php
$source = file_get_contents(basename($_SERVER['SCRIPT_NAME']));
$token = token_get_all($source);
foreach($token as $key=>$val){
if(is_array($val)){
$token[$key][0] = token_name($val[0]);
}
}
print_r($token);
実行結果。
Array
(
[0] => Array
(
[0] => T_OPEN_TAG
[1] => <?php
[2] => 1
)
[1] => Array
(
[0] => T_WHITESPACE
[1] =>
[2] => 2
)
[2] => Array
(
[0] => T_VARIABLE
[1] => $source
[2] => 2
)
[3] => Array
(
[0] => T_WHITESPACE
[1] =>
[2] => 2
)
[4] => =
[5] => Array
(
[0] => T_WHITESPACE
[1] =>
[2] => 2
)
[6] => Array
(
[0] => T_STRING
[1] => file_get_contents
[2] => 2
)
以下も続きますが省略。このように、PHPがプログラムを実行するうえで必要なトークン単位にソースを分割してくれます。
こんなのネタ以外で使う人なんていないだろと思いきや、ソースをPHPからC++に変換するという、これまた意味の分からないプロジェクトで使われていました。
誰がどんな時に使うんだそれ。
PR