【发布时间】:2020-03-23 09:05:18
【问题描述】:
我正在尝试将 eval() 与 json_decode(file_get_contents()) 一起使用,并且在对值进行评估和硬编码时得到了不同的结果。我只是错过了一些简单的事情吗?
我使用的是 PHP 版本 5.3.24,目前无法更改。如果对 eval() 支持至关重要,我可以开始对其进行更改。我没有发现任何表明我在当前的 PHP 实现中不支持 eval() 的信息。
当我运行 Example1('key') 时,我从 eval() 函数返回 NULL。当我运行 Example2('key') 时,我得到一个基于 json 数据的数组,如下所示:
{ key_list: [ { data1_list: [ { subkey1: "data", subkey2: 0 }, .. ], .. ] }
这里是 Example1():
function Example1($key) {
$endPoint = 'http:'.'//some.website.com/json/'.$key;
$evalCommand = sprintf('json_decode(file_get_contents("%s"))->%s_list[0];', $endPoint, $key);
echo '$evalCommand = |'.$evalCommand.'|<br />';
$resultsArray = eval($evalCommand);
return $resultsArray;
}
这里是 Example2():
function Example2($key) {
$endPoint = 'http:'.'//some.website.com/json/'.$key;
$resultsArray = json_decode(file_get_contents($endPoint))->key_list[0];
return $resultsArray;
}
【问题讨论】:
标签: php json eval file-get-contents