Есть ли способ изменить стиль ошибок PHP с помощью CSS или внутри PHP?

На самом деле, это классический прецедент для AspectJ:

declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor")

Пока я дам вам, что манипуляция с прямым байтовым кодом более мощная, AspectJ гораздо удобнее, и он сразу дает вы компилируете предупреждения, когда вы делаете что-то неправильно.

Кроме того, если вы используете Load Time Weaving , вы можете оставить исходную библиотеку jar неизменной, потому что плетение происходит при загрузке класса

Ссылка:

1
задан Nick Parsons 18 January 2019 в 10:34
поделиться

1 ответ

Я определенно не советую вам делать это, но может быть способ сделать это. Это set_error_handler Вы можете найти больше информации о Обработчике ошибок в документации php.net

Функции обработки ошибок

Также вы можете посмотреть здесь. Но вам нужно проверить php.net для большего количества примеров. В случае E_USER_ERROR: Вы можете сделать html-стили для изменения стиля ошибок.

<?php
// error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    if (!(error_reporting() & $errno)) {
        // This error code is not included in error_reporting, so let it fall
        // through to the standard PHP error handler
        return false;
    }

    switch ($errno) {
    case E_USER_ERROR:
        echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
        echo "  Fatal error on line $errline in file $errfile";
        echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        echo "Aborting...<br />\n";
        exit(1);
        break;

    case E_USER_WARNING:
        echo "<b>My WARNING</b> [$errno] $errstr<br />\n";
        break;

    case E_USER_NOTICE:
        echo "<b>My NOTICE</b> [$errno] $errstr<br />\n";
        break;

    default:
        echo "Unknown error type: [$errno] $errstr<br />\n";
        break;
    }

    /* Don't execute PHP internal error handler */
    return true;
}

// function to test the error handling
function scale_by_log($vect, $scale)
{
    if (!is_numeric($scale) || $scale <= 0) {
        trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", E_USER_ERROR);
    }

    if (!is_array($vect)) {
        trigger_error("Incorrect input vector, array of values expected", E_USER_WARNING);
        return null;
    }

    $temp = array();
    foreach($vect as $pos => $value) {
        if (!is_numeric($value)) {
            trigger_error("Value at position $pos is not a number, using 0 (zero)", E_USER_NOTICE);
            $value = 0;
        }
        $temp[$pos] = log($scale) * $value;
    }

    return $temp;
}

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");
0
ответ дан Anon 18 January 2019 в 10:34
поделиться