Eval-строка в виде массива

У меня есть файл .html, который содержит следующее:

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

Это буквально все, что в нем содержится.

В моем коде я хочу оценить это и затем напечатать это:

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

Однако это ничего не печатает.

Любая помощь будет принята с благодарностью.

1

Решение

Во-первых, не используйте eval(), это ЗЛОЙ функционировать и следует избегать, как чума.

Во-вторых, это не работает, потому что вы не написали правильный код PHP. То, что делает ваш eval, это буквальный эквивалент наличия файла .php, который содержит:

<?php
array(1,2,3)

Там нет назначения, нет вывода, и нет return, Там просто массив «выполняется», а затем сразу уничтожается.

То, что вы должны иметь, это

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

таким образом, массив сохраняется. Что означает, что ваш eval должен выглядеть больше как:

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector