Настройка во время выполнения
Поведение этих функций зависит от установок в php.ini.
| Имя | По умолчанию | Место изменения | Список изменений |
|---|---|---|---|
| assert.active | "1" | PHP_INI_ALL | |
| assert.bail | "0" | PHP_INI_ALL | |
| assert.warning | "1" | PHP_INI_ALL | |
| assert.callback | NULL | PHP_INI_ALL | |
| assert.quiet_eval | "0" | PHP_INI_ALL | |
| assert.exception | "0" | PHP_INI_ALL | Доступна с версии PHP 7.0.0. |
| enable_dl | "1" | PHP_INI_SYSTEM | Эта возможность устарела и будет обязательно удалена в будущем. |
| max_execution_time | "30" | PHP_INI_ALL | |
| max_input_time | "-1" | PHP_INI_PERDIR | |
| max_input_nesting_level | "64" | PHP_INI_PERDIR | Доступна с PHP 5.2.3. |
| max_input_vars | 1000 | PHP_INI_PERDIR | Доступна с PHP 5.3.9. |
| magic_quotes_gpc | "1" | PHP_INI_PERDIR | Удалена в PHP 5.4.0. |
| magic_quotes_runtime | "0" | PHP_INI_ALL | Удалена в PHP 5.4.0. |
| zend.enable_gc | "1" | PHP_INI_ALL | Доступна с PHP 5.3.0. |
Краткое разъяснение конфигурационных директив.
-
assert.activebool -
Включение выполнение assert().
-
assert.bailbool -
Завершение работы скрипта при провале проверки утверждений.
-
assert.warningbool -
Вызов предупреждений PHP для каждой проваленной проверки утверждения.
-
assert.callbackstring -
Пользовательская функция, вызываемая при провале проверки утверждений.
-
assert.quiet_evalbool -
Используйте эту настройку функции error_reporting() во время выполнения проверки утверждений. При включении настройки сообщения об ошибках во время проверки утверждений показываться не будут (неявный вызов error_reporting(0)). Если настройка выключена, ошибки будут выдаваться в соответствии с настройками error_reporting()
-
assert.exceptionbool -
Генерирует исключение AssertionError для неудачной проверки утверждения.
-
enable_dlbool -
Эта директива может оказаться полезной только в PHP, используемом в качестве модуля Apache. С ее помощью можно включать динамическую подгрузку расширений посредством функции dl(). Динамическая загрузка может быть включена или отключена для каждого отдельно взятого виртуального сервера или директории.
Главной причиной, по которой требуется выключение динамической загрузки, является безопасность. С помощью динамической загрузки можно обойти все open_basedir ограничения. По умолчанию динамическая загрузка разрешена.
-
max_execution_timeint -
Эта директива задает максимальное время в секундах, в течение которого скрипт должен полностью загрузиться. Если этого не происходит, парсер завершает работу скрипта. Этот механизм помогает предотвратить зависание сервера из-за плохо написанного скрипта. По умолчанию на загрузку дается
30секунд. Если PHP запущен из командной строки, это значение по умолчанию равно0.В системах, отличных от Windows, на максимальное время выполнения не влияют системные вызовы, потоковые операции и т.п. За дополнительной информацией обращайтесь к документации к функции set_time_limit().
Веб-серверы обычно имеют свои настройки тайм-аута, по истечении которого сами завершают выполнение скрипта PHP. В Apache есть директива
Timeout, в IIS есть функция CGI timeout. В обоих случаях по умолчанию установлено 300 секунд. Точные значения можно узнать из документации к веб-серверу. -
max_input_timeint -
Эта директива задает максимальное время в секундах, в течение которого скрипт должен разобрать все входные данные, переданные запросами вроде POST или GET. Это время измеряется от момента, когда PHP вызван на сервере до момента, когда скрипт начинает выполняться. Значение по умолчанию
-1, что означает, что будет использоваться max_execution_time. Если установить равным0, то ограничений по времени не будет. -
max_input_nesting_levelint -
Задает максимальную глубину вложенности входных переменных (то есть $_GET, $_POST.)
-
max_input_varsint -
Сколько входных переменных может быть принято в одном запросе (ограничение накладывается на каждую из глобальных переменных $_GET, $_POST и $_COOKIE отдельно). Использование этой директивы снижает вероятность сбоев в случае атак с использованием хеш-коллизий. Если входных переменных больше, чем задано директивой, выбрасывается предупреждение
E_WARNING, а все последующие переменные в запросе игнорируются. -
magic_quotes_gpcbool -
Внимание
Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.
Задает режим magic_quotes для GPC (Get/Post/Cookie) операций. Если magic_quotes включен, все ' (одинарные кавычки), " (двойные кавычки), \ (обратный слеш) и NUL автоматически экранируются обратным слешем.
См. также get_magic_quotes_gpc()
-
magic_quotes_runtimebool -
Внимание
Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.
Если включена директива
magic_quotes_runtime, большинство функций возвращающих данные из внешних источников, таких как базы данных или текстовые файлы, будут экранировать кавычки обратным слешем.Функции, на которые распростаняется действие директивы
magic_quotes_runtime(исключая функции из PECL):- get_meta_tags()
- file_get_contents()
- file()
- fgets()
- fwrite()
- fread()
- fputcsv()
- stream_socket_recvfrom()
- exec()
- system()
- passthru()
- stream_get_contents()
- bzread()
- gzfile()
- gzgets()
- gzwrite()
- gzread()
- exif_read_data()
- dba_insert()
- dba_replace()
- dba_fetch()
- ibase_fetch_row()
- ibase_fetch_assoc()
- ibase_fetch_object()
- mssql_fetch_row()
- mssql_fetch_object()
- mssql_fetch_array()
- mssql_fetch_assoc()
- mysqli_fetch_row()
- mysqli_fetch_array()
- mysqli_fetch_assoc()
- mysqli_fetch_object()
- pg_fetch_row()
- pg_fetch_assoc()
- pg_fetch_array()
- pg_fetch_object()
- pg_fetch_all()
- pg_select()
- sybase_fetch_object()
- sybase_fetch_array()
- sybase_fetch_assoc()
- SplFileObject::fgets()
- SplFileObject::fgetcsv()
- SplFileObject::fwrite()
-
zend.enable_gcbool -
Включает или отключает сборщик циклических ссылок.