У меня есть файл .html, который содержит следующее:
array('1', '786286', '45626');
Это буквально все, что в нем содержится.
В моем коде я хочу оценить это и затем напечатать это:
$code = file_get_contents('array.html');
$nums = eval($code);
print_r($nums);
Однако это ничего не печатает.
Любая помощь будет принята с благодарностью.
Во-первых, не используйте 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);
Других решений пока нет …