忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/08/24 04:18 |
PHP5.4.7 PHPの字句解析を行う
Tokenizer関数は、Zend Engineを用いてPHPソースコードの字句解析を行うという、いったい誰がどんな時に使用するのか全く見当が付かない関数です。

ソース。
<?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


2013/04/15 22:05 | Comments(0) | PHP

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<Zend Framework2.1.3 Zend\Stdlib\ErrorHandler | HOME | 買ったものリスト 2013/04/14>>
忍者ブログ[PR]