foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

PHP token_get_all() が便利

PHP のシェルが欲しくなった。
Rubyirb や、Python の IPython のようなもの。

複数行をどう扱うか

単に1行ずつ拾って eval したんじゃ複数行が扱えない。
複数行にするために特殊な入力(例えば、最後に \ を入れるとか)はさせたくない。
つまり構文解析して、実行可能な状態になっている場合だけ実行したい。

token_get_all()

PHP 標準関数に正に欲しいものがあった。

<?php
$s = "<?php echo 1; ?>";
$tokens = token_get_all($s);
print_r($tokens);
?>