将字符串评估为数组

问题描述 投票:0回答:2

我有一个 .html 文件,其中包含以下内容:

array('1', '786286', '45626');

这就是它所包含的全部内容。

在我的代码中,我想评估它然后打印它:

$code = file_get_contents('array.html');
$nums = eval($code);
print_r($nums);

但是,它没有打印任何内容。

任何帮助将不胜感激。

php arrays eval
2个回答
3
投票

首先,不要使用

eval()
。这是一个 EVIL 功能,应该像瘟疫一样避免。

其次,它不起作用,因为你没有编写正确的 PHP 代码。您的 eval 所做的实际上相当于拥有一个 .php 文件,其中包含:

<?php
array(1,2,3)

没有分配,没有输出,也没有

return
。只是一个数组被“执行”,然后立即被销毁。

你应该拥有的是

<?php
$arr = array(1,2,3)

因此数组被保留。这意味着您的评估应该看起来更像:

$text = file_get_contents('...');
// option 1
eval("\$arr = $text");
      ^^^^^^^
print_r($arr);

// option 2
$foo = eval("return $text");
             ^^^^^^
print_r($foo);

-1
投票

选项 1 需要在 php 命令末尾加一个分号,意思是: eval(" rr = $text;"); ^ 我怀疑,选项 2 也同样需要这个分号。

© www.soinside.com 2019 - 2024. All rights reserved.