メソッドとかクラスも引っかかっちゃうけどまあいいや。 実行してもいいような場合は get_defined_functions()
のほうがいいかも。
<?php
$filename = '/path/to/file.php';
$contents = file_get_contents($filename);
$tokens = token_get_all($contents);
$functions = array();
while ( count($tokens) > 0 )
{
$token = array_shift($tokens);
if ( $token[0] !== T_STRING )
{
continue;
}
$isFunction = false;
while ( count($tokens) > 0 )
{
$_token = array_shift($tokens);
if ( $_token[0] === T_WHITESPACE )
{
continue;
}
else
{
if ( $_token[0] === '(' )
{
$isFunction = true;
}
break;
}
}
if ( $isFunction === true )
{
$functions[] = $token[1];
}
}
$functions = array_count_values($functions);
arsort($functions);
print_r($functions);