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

Печать RSS
326

Автор
Господин ПЖ
0
Есть некий обработчик, который берет в цикле некие формулы на php и выполняет их через eval
Иногда в массиве встречаются некорректные данные, к примеру отсутствует скобка или точка с запятой, eval естественно падает и выдает parse error

try catch не ловит, есть какие-нибудь другие способы например записать в лог или что-то другое, что произошел сбой
Изменил: Вантуз-мен (03.10.2016 / 18:51)
J

Оранжевые штаны
0
delete
Изменил: JustZero (03.10.2016 / 19:08)

Пацак
0
Как насчёт http://php.net/manual/ru/function.set-error-handler.php
Либо eval() die();
Ну либо проверять код до попадания в eval скриптом коих на гитхабе куча
Автор
Господин ПЖ
0
Ошибки следующих типов не могут быть обработаны пользователем: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, и большинство E_STRICT ошибок, произошедших в файле, где вызвана функция set_error_handler().
Насчет проверки до подумать надо, стоит оно того вообще
К

Айсберг Визави
0
вообще странный вариант предложу, и в нем есть ограничения, но именно так работает один из сервисов запуска скриптов онлайн.

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

Пацак
0
Vantuz, а для чего вообще нужно eval использовать?
Автор
Господин ПЖ
0
Кевин Митник_HHTeam, файл создавать нагрузка на файловую систему, там много формул, пытался сделать что-то типа exec("php -l '$file'"); но $file как файл из потока никак не хочет работать, может есть возможность, но у меня не получилось,
KpuTuK, для исполнения кода, он хранится в базе

2000 лет д.н.э.
0
Кешировать, генерить файл с многими кусками кода в виде набора функций? func$id

Пацак
0
Vantuz, а что за скрипт/модуль?
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск