Используя fopen()
и fgets()
, я создаю небольшую среду командной строки в PHP. Это предполагает возможность запуска команд, которые передаются на eval()
.
Хотя это прекрасно работает, если что-то вызывает ошибку, PHP завершится с сообщением о фатальной ошибке.
Я обнаружил, что могу перехватывать фатальные ошибки, используя register_shutdown_function()
, но после функции называется, 1017 * выходит безжалостно. Тем не менее, я хочу, чтобы мой скрипт продолжал работать и отображал ошибку пользователю, а затем разрешить / дождаться следующего ввода. Я знаю, как отобразить ошибку, но я не знаю, как предотвратить выход PHP.
Есть ли способ сохранить его работоспособным?
Примечание. Я рассмотрел вопрос об использовании Сценарий перезапускается сам, вызывая passthru()
сам по себе, который работает, поскольку он просто перезапускает себя внутри себя для каждой возникающей ошибки, но это немного грязное решение.