register_shutdown_function(string function)
Функция register_shutdown_function (листинг 15.8) вызывает выполнение функции после анализа целого сценария, включая код за пределами тегов PHP. В случае ошибки, тайм-аута или принудительного завершения работы пользователем выполняется функция shutdown.
Необходимо помнить, что функция shutdown может быть вызвана после того, как было разорвано соединение с браузером. В этом случае использование функции print теряет всякий смысл. Другими словами, это не подходит для отладки. Можно зарегистрировать более одной функции shutdown. PHP выполняет каждую функцию shutdown в порядке ее регистрации.
| Листинг 15.8. Функция register_shutdown_function_
<?php
function shutdown()
{
error_log('Работа сценария завершена', 3, "/tmp/status.log"),-
}
register_shutdown_function("shutdown");
?>
restore_error_handler()
Функция restore_error_handler позволяет восстановить прежнюю программу обработки ошибок после того, как была задана новая программа обработки ошибок с помощью функции set_error_handler.
restore_exception_handler()
Функция restore_exception_handler позволяет восстановить прежнюю программу обработки исключительных событий после того, как была задана новая программа исключительных событий с помощью функции set_exception_handler.
string set_error_handler(string function) string set_error_handler(array function)
Функция set_error_handler (листинг 15.9) задает функцию, которую вызывает PHP, при возникновении ошибки и возвращает имя предыдущей программы обработки ошибок. PHP вызывает программу обработки ошибок с пятью аргументами: номер ошибки, описание, путь к файлу, номер строки и контекст. Последний аргумент представляет собой копию массива GLOBALS. Существует возможность задать класс или объектный метод для программы обработки ошибок. В этом случае будем иметь массив с двумя элементами. Первый элемент должен содержать имя класса или объекта, а второй - имя метода.
В случае задания дополнительной программы обработки ошибок PHP игнорирует значения директивы error_reporting и будет вызывать вашу функцию для обработки каждой ошибки, предупреждения или уведомления. Если требуется игнорировать классы ошибок, необходимо проверить возвращаемое значение с помощью функции error_reporting и действовать соответствующим образом. Если необходимо восстановить стандартную программу обработки ошибок, можно вызывать функцию restore_error_handler или использовать функцию set_error_handler с аргументом, имеющим значение NULL.
| Листинг 15.9. Функция set_error_handler_
<?php
function handleError($error, $description, $file, $line, $context)
{
switch($error)
{
case E_USER_ERROR:
$type = "Error"; $color = "red"; break;
case E_WARNING:
case E_USER_WARNING:
$type = "Warning"; $color = "yellow"; break;
case E_NOTICE:
case E_USER_NOTICE: $type = "Notice";
$color = "blue"; break; default:
$type = "Other Error";
}
print("<table border="1"><tr><td bgcolor="$color">" . "$type: $description in $file on line $line " . "({$context["_SERVER"]["REMOTE_ADDR"]})<br>" .
"</tr></td></table>");
}
// переключиться на обычную программу обработки set_error_handler('handleError');
trigger_error("Custom error handler", E_USER_WARNING); //show PHP's default handler restore_error_handler();
trigger_error("PHP's default error handler", E_USER_WARNING);
?>
set_exception_handler(string function) set_exception_handler(array function)
Функция set_ exception _handler задает функцию, которую вызывает PHP при возникновении исключительного события, и возвращает имя предыдущей программы обработки исключений. Существует возможность задания класса или объектного метода для программы обработки исключений. В этом случае будем иметь массив с двумя элементами. Первый элемент должен содержать имя класса или объекта, второй - имя метода.
boolean set_include_path(string path)
Функция set_include_path (листинг 15.10) задает директиву include_path, которую можно задавать также с помощью функции ini_set.
Листинг 15.10. Функция set_include_path
<?php
//печатает что- то наподобие.: /usr/local/lib/php print(get_include_path() . "<br>"); set_include_path("/home/leon/library"); print(get_include_path() . "<br>"); restore_include_path(); print(get_include_path() . "<br>");
?>
integer set_magic_quotes_runtime(boolean setting)
Функция set_magic_quotes_runtime (листинг 15.11) предназначена для изменения режима замены кавычек в данных, выбранных из базы данных. Возвращается первоначальное значение.
Листинг 15.11. Функция set_magic_quotes_runtime
<?php
//отключить режим magic_quotes_runtime set_magic_quotes_runtime(0);
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Настройка. Часть Одиннадцатая.
20-02-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Настройка. Часть Десятая. | PHP. Настройка. Часть Двеннадцатая. |