【问题标题】:PHP: Get PHP's variables, functions, constants from a php filePHP:从一个php文件中获取PHP的变量、函数、常量
【发布时间】:2010-12-23 22:01:01
【问题描述】:

有没有办法从 php 文件中获取用户定义的 php 函数、变量、常量? 以下功能不是最好的方法,因为它们都被贴花 functions/vars/constants(具有数百个 php 的内置常量和内部 php 函数):

get_defined_vars  
get_defined_functions  
get_defined_constants  

假设我有这个文件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);
}
?>

现在我如何从该文件中获取所有变量/函数/常量并可能存储在一个数组中?

谢谢

【问题讨论】:

    标签: php file function include variables


    【解决方案1】:

    您可能想尝试 PHP Tokenizer。

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

    来自外部脚本:

    <?php
    
    var_dump(token_get_all(file_get_contents('myscript.php')));
    
    ?>
    

    【讨论】:

      【解决方案2】:

      调用get_defined_functions,然后包含文件,再次调用get_defined_functions并计算差异。

      【讨论】:

        【解决方案3】:

        获取文件中定义的所有变量

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

        你应该重复上面的代码,将 get_defined_vars() 替换为

        get_defined_vars()  
        get_defined_functions()  
        get_defined_constants()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-30
          • 1970-01-01
          • 2015-05-08
          • 1970-01-01
          相关资源
          最近更新 更多