开发者

PHP: Get PHP's variables, functions, constants from a php file

开发者 https://www.devze.com 2022-12-13 05:20 出处:网络
Is there a way to get user-defined php functions, variables, constants from a php file? Following functions are not the best way to do so because they get all decalred

Is there a way to get user-defined php functions, variables, constants from a php file? Following functions are not the best way to do so because they get all decalred functions/vars/constants (with hundreds of php's built-in constants 开发者_开发百科and internal php functions):

get_defined_vars  
get_defined_functions  
get_defined_constants  

Suppose i have this file myfile.php:

<?php
$title = 'Sample Application';
$copyright = 'Copyright &copy; 2009';
    $my_array = array('sarfraz', 'ahmed', 'chandio');

define ('_CASTE', 'chandio');
define ('_COUNTRY', 'Pakistan');


function add($val1, $val2)
{
    return ($val1 + $val2);
}

function subtract($val1, $val2)
{
    return ($val1 - $val2);
}
?>

Now how can i get all variables/functions/constants from that file and probably store in an array?

Thanks


You probably want to try the PHP Tokenizer.

http://www.php.net/manual/en/ref.tokenizer.php

From an external script:

<?php

var_dump(token_get_all(file_get_contents('myscript.php')));

?>


call get_defined_functions, then include the file, call get_defined_functions once again and compute the difference.


To get all variables defined in a file

$init_var = get_defined_vars();
include_once('file_to_check.php');
$init_var2 = get_defined_vars();
unset($init_var2['init_var']);
$variables_defined_in_file = array_diff_key($init_var2, $init_var));
var_dump($variables_defined_in_file);

you should repeat above code by replacing get_defined_vars() for

get_defined_vars()  
get_defined_functions()  
get_defined_constants()
0

精彩评论

暂无评论...
验证码 换一张
取 消