从未知文件中获取变量的值

时间:2017-03-24 20:51:58

标签: php

我正在尝试读取php文件,以便我可以提取所有变量并将它们存储在一个对象中。 然后我想获取变量的值并将其添加到对象中。 如果变量位于未知文件中,如何获取变量的值?

解析文件的代码:

function scan($file){
  $vars = (object) array();
  $tokens = token_get_all(file_get_contents($file));
  foreach($tokens as $token){
    if ($token[0] == 312){ //if the token is a variable
      $vars->{substr($token[1], 1)} = VALUE OF CURRENT TOKEN ;
    }
  }
  return $vars;
}

需要解析的代码:

<?php

$duck = "cow";
$lizard = "cat";

?>

我要返回的对象:

{
  duck: "cow",
  lizard: "cat"
}

1 个答案:

答案 0 :(得分:0)

这是一项糟糕的任务。只有preg可以帮助你。像这样:

    <?php 

$filetext = '

<?php

$duck = "cow";
$lizard = "cat";
$qwert = 4;
$asdfg=2;

?>
';


preg_match_all('/\$(\w+)\s*=\s*(\S+);/', $a, $matches);

var_dump($matches);

if (!empty($matches[1])) {
    $object = new stdClass();
    foreach($matches[1] as $key => $value) {
        $object->{$value} = trim($matches[2][$key], '\'"');
    }
}
var_dump($object);