评估字符串作为数组
eval string as an array
我有一个 .html 文件,其中包含以下内容:
array('1', '786286', '45626');
这就是它的全部内容。
在我的代码中,我想评估这个然后打印它:
$code = file_get_contents('array.html');
$nums = eval($code);
print_r($nums);
但是,它没有打印任何东西。
如有任何帮助,我们将不胜感激。
首先,不要使用 eval()
。这是一个 EVIL 函数,应该像瘟疫一样避免。
其次,它不起作用,因为您没有编写正确的 PHP 代码。你的 eval 所做的是字面上等同于拥有一个 .php 文件,其中包含:
<?php
array(1,2,3)
没有赋值,没有输出,也没有return
。只是一个数组 "executed" 然后立即被销毁。
你应该拥有的是
<?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);
我有一个 .html 文件,其中包含以下内容:
array('1', '786286', '45626');
这就是它的全部内容。
在我的代码中,我想评估这个然后打印它:
$code = file_get_contents('array.html');
$nums = eval($code);
print_r($nums);
但是,它没有打印任何东西。
如有任何帮助,我们将不胜感激。
首先,不要使用 eval()
。这是一个 EVIL 函数,应该像瘟疫一样避免。
其次,它不起作用,因为您没有编写正确的 PHP 代码。你的 eval 所做的是字面上等同于拥有一个 .php 文件,其中包含:
<?php
array(1,2,3)
没有赋值,没有输出,也没有return
。只是一个数组 "executed" 然后立即被销毁。
你应该拥有的是
<?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);