Отправить сигнал что скрипт завершился аварийно

1. Вантуз-мен (03.10.2016 / 18:50)
Есть некий обработчик, который берет в цикле некие формулы на php и выполняет их через eval
Иногда в массиве встречаются некорректные данные, к примеру отсутствует скобка или точка с запятой, eval естественно падает и выдает parse error

try catch не ловит, есть какие-нибудь другие способы например записать в лог или что-то другое, что произошел сбой

2. JustZero (03.10.2016 / 19:08)
delete

3. KpuTuK (03.10.2016 / 22:08)
Как насчёт http://php.net/manual/ru/function.set-error-handler.php
Либо eval() die();
Ну либо проверять код до попадания в eval скриптом коих на гитхабе куча

4. Вантуз-мен (03.10.2016 / 23:40)
Ошибки следующих типов не могут быть обработаны пользователем: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, и большинство E_STRICT ошибок, произошедших в файле, где вызвана функция set_error_handler().
Насчет проверки до подумать надо, стоит оно того вообще

5. Кевин Митник (04.10.2016 / 05:59)
вообще странный вариант предложу, и в нем есть ограничения, но именно так работает один из сервисов запуска скриптов онлайн.

получаем данные от пользователя, создаем файл, пишем туда полученные данные от пользователя, запускаем как файл с помощью php (для данного сервиса нужно сделать много ограничений, чтобы не сломали систему), смотрим STDOUT и радуемся любому результату

6. KpuTuK (04.10.2016 / 19:33)
Vantuz, а для чего вообще нужно eval использовать?

7. Вантуз-мен (04.10.2016 / 22:56)
Кевин Митник_HHTeam, файл создавать нагрузка на файловую систему, там много формул, пытался сделать что-то типа exec("php -l '$file'"); но $file как файл из потока никак не хочет работать, может есть возможность, но у меня не получилось,
KpuTuK, для исполнения кода, он хранится в базе

8. ramzes (05.10.2016 / 01:14)
Кешировать, генерить файл с многими кусками кода в виде набора функций? func$id

9. KpuTuK (05.10.2016 / 09:31)
Vantuz, а что за скрипт/модуль?

URL: https://visavi.net/topics/43177