Проверка, возвращает ли введенный код PHP значение - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь убедиться, что некоторый PHP-код, введенный в текстовую область, действителен и возвращает значение.

Вот мой код:

try {
    if (!$return = eval($php_code)) {
        $error = 'The php code field must return a value.';
    }
}
catch (Throwable $e) {
    $error = $e->getMessage();
}

if (isset($error)) {
    die($error);
}

Это не похоже наработатьОн перехватывает большинство ошибок, но если я ввожу что-то вроде echo 'test';, это не выдает ошибку.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Согласно документации eval-функции вы должны ввести что-то вроде этого

'echo "test";'

не

echo 'test';
0 голосов
/ 16 декабря 2018

Я не знаю весь код, но попробуйте проверить eval ().Я обычно работаю со следующим кодом в качестве примера:

$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with $nombre inside.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
...