2

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

3 Answers 3

6

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')));

?>
Sign up to request clarification or add additional context in comments.

Comments

0

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

Comments

0

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()

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.