Управляющие функции
В комплекте поставки данный файл именуется php.ini-dist, при ручной установке его нужно переименовать в php.ini и поместить в каталоге но умолчанию. Традиционно РНР ищет данный файл в нынешнем каталоге (скажем, там, где находится сам интерпретатор). Также данный файл может распо.чагаться в системном каталоге (это характерно Windows). При запуске интерпретатора из командной строки с параметром -с дозволено указать другой путь. Помимо того, путь дозволено задать и переменной окружения PHPRC. Файл конфигурации PHP ISAPI модуля загружается некогда, при запуске web-сервера; а для CGI-верспи — при всем запуске. Исходные параметры конфигурации php.ini-dist соответствуют параметрам компиляции по умолчанию. Для сервера Apache некоторые параметры РНР дозволено также указать в файлах конфигурации web-сервера и файлах .htaccess (в виде php_value name value, где name — наименование параметра РНР, a value — ее значение). Параметры для загружаемых модулей помечаются их наименованиями, коюрые заключены в квадратные скобки. Эти наименования в скобках (пока) игнорируются. Позже символа «точка с занятой» указываются комментарии. Значения параметров указываются в виде: директива = значение. Регистр учитывается. Значением может быть:
В выражениях дозволено указывать группирующие круглые скобки, битовые операторы: | (ЛИБО), & (И), - (НЕ) и логичный оператор: ! (НЕ). Если требуется применять константы РНР, определяемые загружаемыми библиотеками, то их дозволено применять только позже строки, загружающей соответствующий модуль. Для установки логических параметров дозволено применять значения 1, On, True, Yes; а для их сброса — 0, Off. False, No. Пустая строка может быть обозначена простым неуказанием значения позже знака равенства либо значением None. Узнать нынешние параметры конфигурации дозволено функциями phpinfoO, get cfg var() и т. п. Всеобщие параметры anow_call_time_pass_reference = On Разрешает передачу доводов по ссылке при вызове функций. Данный параметр устарел и в грядущем не будет поддерживаться. Рекомендуется указывать возможность передачи значений в функцию по ссылке в объявлении функций, а данный параметр отключить. ;arg_separator.output = "&агар;" Разграничитель доводов, применяемый в URL, генерируемых РНР. По умолчанию: «&>> в представлении HTML (параметр добавлен в РНР 4.0.5). ;arg_separator.input = ";&" Перечисляет разделители, используемые РНР для распределения доводов в строке URL и дальнейшего занесения в переменные. Весь символ указанной строки считается разделителем (параметр добавлен в РПР 4.0.5). aTlow_url_fopen = On Разрешает указание адресов URL в функциях открытия файлов (потоков). По умолчанию допустимо применение удаленных файлов ftp и http; некоторые добавочные модули могут расширять возможности, скажем, модуль zlib дозволяет открывать сжатые файлы. asp_tags = Off Разрешает применение ASP-сходственных тегов <% и %> в дополнение к основным <?рпр и ?>. Это также дозволяет выводить значение переменных способом ASP: <%- %value %>. auto_append_filе = string Указывается имя файла, текст которого механически добавляется перед началом всего интерпретируемого файла (как если бы его подключали директивой include(); путь include_path также применяется). Может применяться для отслеживания посещений, инициализации переменных основного сценария либо простого добавления «верхушек» страниц. Но если сценарий завершается функцией exit(), добавление не производится. auto_arepend_file = string Указывается имя файла, текст которого механически добавляется позже конца всего интерпретируемого файла, аналогично параметру auto_append_fiIe. cgi_ext = string Параметр пока не определен, defaultjnimetype = "text/html" ;default_charset = "iso-8859-1" Строки mimetype и charset, посылаемые в http заголовке всякой страницы, генерируемой РНР. Дозволено очевидно проверить, какой заголовок выводится РНР, запустив сценарий из командной строки, не указывая параметр -q. Пригодно для указания charset-a кириллицы (скажем: «windows-1251»). display_errors = On Разрешает итог сообщений об ошибках как обыкновенный текст. Рекомендуется отключить данный параметр позже отладки, потому что это может применяться преступниками для приобретения конфиденциальной информации. display_startup_errors = Off Даже когда все сообщения об ошибках разрешены, ошибки времени инициализации РНР не отображаются. Параметр разрешает итог сообщений об этих ошибках как обыкновенный текст. Рекомендуется отключить данный параметр позже отладки, потому что это может применяться преступниками для приобретения конфиденциальной информации. ;doc_root = string Указывает корневой каталог РНР на сервере. При указании с параметром safejnode = On сценарии в иных каталогах не запускают ся. engine = On Параметр пригоден только для PHP-модуля сервера Apache. Он разрешает позволить (либо запретить) интерпретацию сценариев РНР в определенных web-каталогах либо на отдельных виртуальных web-серверах. Обыкновенно эта директива указывается в соответствующем разделе файла httpd.conf. ;error_log = string Имя файла, в тот, что заносятся сообщения об ошибках. При указании особого значения syslog сообщения направляются в журнал системных событий (в UNIX это syslog(3), а в Windows NT это Event Log; Windows 95 параметр не поддерживает). error_reporting = E_ALL &-E_NOTICE Устанавливает битовую маску ошибок, о которых сообщается во время исполнения. По умолчанию выдаются все сообщения, помимо примитивных. Допустимы многообразные комбинации. Константы и значения приводятся в главе «Обработка ошибок». ;error_prepend_string = "<font color=ffOOOO>" Добавляет указанную строку в начале сообщения, выводимого при ошибке. ;error_append_string = "</font>" Добавляет указанную строку в конце сообщения, выводимого при ошибке. expose_php = On Разрешает включать в http-заголовки припоминание о том, что РНР установлен на сервере. file_uploade = On Разрешает пли воспрещает поддержку HТТР-загрузки файлов на сервер. gpc_order = "GPS" Параметр устарел и заменен параметром variabдes_order. ignore_user_abort = On Воспрещает завершать сценарий при обрыве подключения. См. функцию ignore_user_abort(). inplicit_flush = Off Эквивалент вызова функции ob_implicit_f"lush(). Установка этого параметра крепко снижает быстродействие и применяется в основном при отладке. include_path = string Указывает перечисление каталогов, в которых ищутся файлы, подключаемые с подмогой requireO, include() и fopen_with_path(). Формат аналогичен используемому в системной переменной окружения PATH: для UNIX разграничитель — это двоеточие, для Windows — точка с запятой. В UNIX: include j33th=.:/home/httpd/php-lib. В Windows: include_path=".; c:\www\phplib". Значение по умолчанию — только нынешний каталог. isapi_ext = string Параметр пока не определен. log_errors = Off Определяет, помещать ли сообщения об ошибках в журнал событий web-сервера. Зависит от вида сервера. magic_quotes_gpc = On Разрешает при регистрации глобальных переменных из внешних значений (Get/Post/Cookie) модифицировать получаемые строки, а именно добавлять обратный слеш перед всяким символом: одинарной либо двойственный кавычки, обратного слеша «\» и нулевого символа \0. Если также разрешен параметр magic_quotes_sybase, то одинарные кавычки удваиваются взамен предварения слешем. magic_quotes_runtime = Off Разрешает либо воспрещает реформирование строковых данных, возвращаемых множеством функций из внешних источников (текстовых файлов, баз данных), по тезису параметра magic_quotes_ gpc. Предпочтительно делать это вручную. magic_quotes_sybase = Off Если данный параметр разрешен коллективно с magic_quotes_gpc (либо magic_quotes_runtime), то одинарные кавычки удваиваются взамен предварения слешем. max_execution_time = 30 Устанавливает максимально возможное время исполнения сценария (тайм-аут) в секундах. При превышении этого времени сценарий будет прекращен. memory_limit = 8М Устанавливает наивысший объем памяти, тот, что может быть выделен одному сценарию (8 Мбайт). Это предотвращает поглощение большого объема памяти сервера неоптимизированными сценариями. nsapi_ext = string Параметр пока не определен. open_basedir = string Указывает перечисление тех каталогов, в которых может быть открыт файл. Если указывается непустая строка, при открытии файла (скажем, функциями fopen() либо gzopen()) местоположение файла проверяется и он открывается, только если обнаруживается в каталоге из указанного списка. Особое значение «точка» обозначает нынешний каталог, в котором находится сценарий. В Windows разделителем списка каталогов служит точка с запятой, в иных системах — двоеточие. При запуске РНР как модуля Apache пути наследуются от корневого web-каталога. output_buffering = Off Разрешает либо воспрещает буферизацию выводимого текста. Разрешение этого параметра дозволяет посылать HTTP-заголовки (либо cookie) из всякого места сценария, но снижает быстродействие. Допустимо разрешение буферизации во время исполнения. output_handler = string Определяет функцию, которая будет применяться для итога. Таким образом дозволено, скажем, перенаправлять каждый выводимый текст в log-файл. При указании в качестве такой функции "ob_gzhandler" каждый выводимый текст будет неявно сжиматься перед посылкой браузеру способом gzip либо deflate (обыкновенно браузеры способны механически декомпрессировать такие данные). Установка этого параметра механически разрешает параметр output_ buffering. precision = 14 Число значащих цифр, выводимое в дробных числах. register_globals = On Разрешает регистрировать внешние переменные (в порядке, указанном параметром variables_order) в качестве глобальных переменных сценария. Рекомендуется, по соображениям безопасности, отключить данный параметр и осуществлять доступ к внешним переменным (для этого должен быть разрешен параметр track_vars) через соответствующие ассоциативные массивы: SHTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, SHTTP_COOKIE_VARS, $HTTP_SERVER_VARS. post_max_size = 8M Устанавливает наивысший объем файла (8 Мбайт), тот, что может быть передан на сервер способом POST. register_argc_argv = On Разрешает регистрацию переменных argv и агдс, содержащих параметры запуска из командной строки либо параметры строки запроса способом GET. Если эти переменные не применяются, отключите параметр для возрастания быстродействия. short_open_tag = On Разрешает применять короткую форму записи тегов-ограничителей РНР: <? и ?>. Если нужна дальнейшая совместимость РНР с XML, данный параметр следует заблокировать, и тогда будет разрешено применять только теги <?php и ?>. track_errors = Off Сберегает последнее сообщение об ошибке в переменной $php_ errormsg. track_vars = On Разрешает сберегать внешние переменные (Environment, GET, POST, Cookie, Server) в ассоциативных массивах: $HTTP_ENV_ VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_ COOKIE_ VARS и $HTTP_SERVER_VARS. В РНР 4.0.3 данный параметр разрешен неизменно. ;upload_tmp_dir = string [ Устанавливает каталог временных файлов, загружаемых на сервер способом HTTP upload. Данный каталог должен быть доступен для записи как открытый (public). По умолчанию применяется системный: TEMP либо ТМР. upload_max_filesize = 2М Устанавливает максимально возможный размер файлов, загружаемых на сервер способом HTTP upload. user_dir = string Устанавливает имя корневого каталога пользователей, в котором РНР открывает файлы формата user-name, скажем: publicjitml. variables_order = "EGPCS"; изредка указывается "GPC" Указывает порядок инициализации переменных сценария РНР. Порядок указывается заглавными символами, являющимися сокращениями для соответственно переменных окружения (Environment), переменных, полученных способами GET и POST, после этого Cookie, и собственно внутренних переменных РНР (Server Built-in). Инициализация происходит в порядке слева направо, и ветхие значения заменяются одноименными новыми. Ранее имя этого параметра было gpc_order. warn_plus_overloading = Off Выводит предупреждение, если оператор плюс (+) применяется в качестве оператора конкатенации строк (взамен оператора «точка»). Пригодно для отладки. y2k_compliance = Off Разрешает либо воспрещает поддержку совместимости с браузерами, не способными позволить задачу 2000 года. zlib.output_compression = Off Неявно сжимает каждый выводимый текст, посылаемый браузеру, применяя библиотеку zlib. Возможные значения: off, on либо размер буфера, применяемый для сжатия (по умолчанию 4 Кбайт) Цветовыделение Следующие параметры определяют цвета, которыми выдается синтаксис РНР при применении функции highlight_file() и сходственных ей. Возможны всякие значения цвета, распознаваемые в теге <font color=???>. highlight.string = #DDOOOO для строк (алый) Безвредный режим safejnode = Off Разрешает безвредный режим РНР. safejnode_exec_dir = string При исполнении РНР в безвредном режиме функции, запускающие внешние приложения (скажем: systemO), будут запускать только те из них, которые помещены в указанном каталоге. safe-mOde_allowed_env_vars = РНР_ Механическая установка значений неременных может быть небезопасна, следственно в данном параметре дозволено через запятую перечислить те префиксы имен переменных, которые дозволено механически инициализировать в неопасном режиме. При пустой строке это лимитация снимается. safe_mode protected env vars = LD LIBRARY PATH В этой строке через запятую перечисляются имена тех переменных среды окружения, которые пользователю запрещено изменять, применяя функцию putenv(). disable_functions = string Блокирует запуск перечисленных через запятую функций. Не зависит от разрешения безвредного режима. sql. safejnode = Off Включает неопасный режим для выполнения команд работы с базами данных. [mail function] SMTP = local host/ Только для Windows: путь DNS либо IP-адрес сервера SMTP, используемого PHP для отправки почты функцией mail (). sendmail_from = me@localhost.com Только для Windows: обратный адрес отправителя почты (поле From:) по умолчанию. ;sendmail_path = 'sendmail -t Только для Unix. Почтовая программа, применяемая для отсылки писем. В этой строке дозволено указать полный путь, а также параметры запуска. Обыкновенные варианты в Unix: usr/sbin/sendmail, /usr/1ib/sendmail, /var/qmai1/bin/sendmail. Отладчик [Syslog] define_syslog_variables = Off Определяет переменные syslog (скажем, $LOG_PID, $LOG_CRON и т. д.). Обыкновенно параметр блокируется для возрастания быстродействия. Во время исполнения дозволено воспользоваться функцией define_ syslog_variables(). [Logging] :logging.method = db ;logging.directory = /path/to/log/directory Параметры в стадии разработки. [Debugger] debugger.host = local host Строка DNS либо IP-адрес хоста отладчика, debugger.port = 7869 Порт, применяемый хостом отладчика, debugger.enabled = False Разрешает либо воспрещает отладку. [Assertion] :assert.active = On Разрешает применение Assert(expr). ;assert.warning = On Разрешает либо воспрещает выдачу предупреждения PHP для каждои ошибки в assert(). ;assert.bail = Off Устанавливает, считать ли значение False в assert() оплошностью. ;assert.call back = О Вызывает указанную функцию для отладки. :assert.quiet_eval = 0 Обрабатывает ошибки, содержащиеся в eval(), согласно установкам в error_reporting(). Установка значения этого параметра TRUE и дальнейший вызов error_reporting(0) будут игнорировать эти ошибки. Прочие настройки модулей [bcmath] bcmath.scale = О Число десятичных цифр для функций bcmath. [browscap] ;browscap = extra/browscap.ini Имя файла browscap.ini (browser capabilities). См. также get browser(). [Java] ;Java.class.path = .\php Java.jar ; Java.home = c:\jdk ;Java.library = c:\jdk\jre\bin\hotspot\jvm.dll java.library.path [Verisign Payflow Pro] pfpro.defaulthost = "test.signio.com" Сервер Signio по умолчанию , pfpro.defaultport = 443 Номер порта подключения к серверу pfpro.defauHtimeout = 30 Наивысшее время ожидания результата в секундах, ipfpro.proxyaddress = IP-адрес прокси сервера, если требуется. ;pfpro.proxyport = Номер порта прокси-сервера. ;pfpro.proxy!ogon = . Логин прокси-сервера, по умолчанию. ;pfpro.proxypassword = Пароль-прокси сервера, по умолчанию. [Sockets] sockets.use_system_read = On Разрешает применять системную функцию чтения read() взамен функции PHP php_read(). [com] : com. type! ib_file = Путь к файлу, содержащему значения GUID, IID, либо файлу типа Type Lib. ;com.aTlow_dcom = TRUE Разрешает вызовы «распределенного» COM (DCOM). Настройки модулей баз данных [ODBC] uodbc.default_db = string Источник данных ODBC по умолчанию для функций odbc_connect() и odbc_pconnect(). Параметр еще не реализован. uodbc.default_user = string Имя пользователя по умолчанию для функций odbc_connect() и odbc_pconnect(). Параметр еще не реализован. uodbc.default_pw = string Пароль пользователя по умолчанию для функций odbc_connect() и odbc_pconnect(). Параметр еще не реализован. odbc.allow_persistent = On Допускает либо воспрещает устойчивые ODBC-подключения. odbc.check_persistent = On Проверяет либо не проверяет сохранность устойчивых подключений до их применения. uodbc.max_persistent = -1 Наивысшее число устойчивых подключений ODBC на один процесс (значение -1 обозначает неимение ограничений). uodbc.maxjinks = -1 Наивысшее число подключений ODBC на один процесс, включая устойчивые (значение -1 обозначает неимение ограничений). I odbc.defaultlrl = 4096 Обработка полей типа LONG (возвращает число байтов в переменных). О обозначает способ passthra. См. функцию odbcJongreadlen(). odbc.defaultbinmode = 1 Метод обработки двоичных данных. О обозначает способ passthru, 1 — «как есть», 2 — реформирование в текстовые символы. См. функцию odbc_binmode(). [MySQL] параметры defaultjiost, default_user, default_password блокируются ; в неопасном режиме, и вообще их не рекомендуется указывать здесь mysql.defaultjiost = string Имя хоста по умолчанию, где должен размещаться сервер MySQL mysql.default_user = string Имя пользователя по умолчанию для функций подключения mysql.default_password = string Пароль пользователя по умолчанию для функций подключения mysql.default_socket = Имя сокета для локальных подключений к MySQL mysql.default_port = Номер порта по умолчанию. Если параметр не установлен, то применяется (по порядку) значение из переменной $MYSQL_TCP_PORT, либо из файла /etc/services, либо из константы компиляции MYSQL_ PORT (в Win32 только из MYSQL_PORT). mysql.allow_persistent = On Допускает либо не допускает устойчивые подключения к MySQL mysql.max_persistent = -1 Наивысшее число устойчивых подключений к MySQL на один процесс (значение -1 обозначает неимение ограничений). mysql.maxjlinks = -1 Наивысшее число подключений к MySQL на один процесс, включая устойчивые (значение -1 обозначает неимение ограничений). [mSQL] msql.al 1ow_persi stent = On Допускает либо не допускает устойчивые подключения к mSQL. I msql .max_persistent = -1 Наивысшее число устойчивых подключений к mSQL на один \ процесс (значение -1 обозначает неимение ограничений). msql.maxjlinks = -1 Наивысшее число подключений к mSQL на один процесс, включая устойчивые (значение -1 обозначает неимение ограничений). [PostgresSQL] pgsql.allow_persistent = On Допускает либо не допускает устойчивые подключения к Postgres. pgsql.max_persistent = -1 Наивысшее число устойчивых подключений к Postgres на один процесс (значение -1 обозначает неимение ограничений). pgsql .maxjinks = -1 Наивысшее число подключений к Postgres на один процесс, включая устойчивые (значение -1 обозначает неимение ограничений). [SESAM] sesam_oml = string Имя библиотеки BS2000 PLAM, содержащей загружаемые драйверы SESAM. Требуется для применения функций SESAM. Библиотека BS2000 PLAM должна быть сконфигурирована как ACCESS=READ,SHARE=YES. sesam_configfile = string Файл конфигурации приложений SESAM. Нужен для применения функций SESAM. Он должен быть доступен для чтения. Традиционно данный файл содержит следующие параметры: CNF=B NAM=K NOTYPE sesamjnessagecatalog = string Имя файла сообщений SESAM. Традиционно не требуется. [Sybase] Sybase.allow_persistent = On Допускает либо не допускает устойчивые подключения к Sybase. Sybase.max_persistent = -1 i Наивысшее число устойчивых подключений к Sybase на один \ процесс (значение -1 обозначает неимение ограничений). Sybase.max_links = -1 Наивысшее число подключений к Sybase на один процесс, включая устойчивые (значение -1 обозначает неимение ограничений). ;Sybase.interface_file = "/usr/sybase/interfaces" Sybase.min_error_severity = 10 Пороговый ярус отображаемых ошибок. Sybase.compatabilityjnode = Off Разрешает либо не разрешает совместимость с версиями РНР 3.0. Если совместимость разрешена, РНР механически назначает типы итогов согласно типологии Sybase взамен того, дабы рассматривать их все как строки. Рекомендуется отключать данный параметр. [Sybase-CT] sybct.allow_persistent = On Допускает либо не допускает устойчивые подключения к Sybase-CT. sybct.maxjersistent = -1 Наивысшее число устойчивых подключений к Sybase-CT на один процесс (значение -1 обозначает неимение ограничений). sybct.max_links = -1 Наивысшее число подключений к Sybase-CT на один процесс, включая устойчивые (значение -1 обозначает неимение ограничений). sybct.min_server_severity = 10 Отображает как предупреждения сообщения об ошибках с ярусом, равным либо огромным чем указанный. См. функцию sybase_min_server_severity(). sybct.min_client_severity = 10 Отображает как предупреждения сообщения об ошибках клиентской библиотеки с ярусом, равным либо огромным чем указанный. См. функцию sybase_min_client_severity(). Значение 10 традиционно блокирует итог предупреждений. sybct.login_timeout = 60 Наивысшее время ожидания подключения в секундах (не забывайте также про параметр max_execution_time). sybct.timeout = Наивысшее время ожидания исполнения операции базы данных подключения в секундах, по умолчанию не ограничено (не i забывайте также про параметр max_execution_time). sybct.hostname = string Имя хоста, с которого производится подключение. См функцию sp_who(). [Informix] ifx.defaultjiost = string Имя хоста по умолчанию, где должен размещаться сервер Informix (блокируется в безвредном режиме). ifx.default_user = string Имя пользователя но умолчанию для функций подключения (блокируется в неопасном режиме). ifx.default_password = string Пароль пользователя по умолчанию для функций подключения (блокируется в безвредном режиме). ifx.allow_persistent = On Допускает либо не допускает устойчивые подключения к Informix. ifx.max_persistent = -1 Наивысшее число устойчивых подключений к Informix на один процесс (значение -1 обозначает неимение ограничений). ifx.maxjinks = -1 Наивысшее число подключений к Informix на один процесс, включая устойчивые (значение -1 обозначает неимение ограничений). ifx.textasvarchar = О Возвращает либо не возвращает поля TEXT (blob) как типичные строки (при значении TRUE) в запросах SELECT. Напротив (по умолчанию) нужно применять для доступа blob id. См. также ifx_textasvarchar(). ifx.byteasvarchar = 0 Возвращает либо не возвращает поля BYTE (blob) как типичные строки (при значении TRUE) в запросах SELECT. Напротив (по умолчанию) нужно применять для доступа blob id. См. также ifx_textasvarchar(). ifx.charasvarchar = О S1 Удаляет либо не удаляет пробелы в конце строк нулей CHAR (fixed-length). ifx.blobinfile = О Реально установка этого параметра (TRUE) принуждает сберегать значения не в памяти, а в файле. См. также ifx_blobinfile_mode(). ifx.null format = 0 Возвращает поля NULL как строку "NULL" (при значении TRUE) либо же как пустую строку "" (по умолчанию). См. также ifx_nuTl format(). [MSSQL] mssql.allow_persistent = On Допускает либо не допускает устойчивые подключения к MSSQL. mssql.max_persistent = -1 Наивысшее число устойчивых подключений к MSSQL на один процесс (значение -1 обозначает неимение ограничений). mssql. maxj inks = -1 Наивысшее число подключений к MSSQL на один процесс, включая устойчивые (значение -1 обозначает неимение ограничений). mssql.min_error_severity = 10 Наименьший ярус отображаемых сообщений об ошибках. mssql .nrin_message_severity = 10 Наименьший ярус отображаемых сообщений, mssql.compatabilityjnode = Off Разрешение совместимости с PHP 3.0. ;mssql.textlimit = 4096 Лимитация длины текстовых строк. Возможные значения: 0- 2 147 483 647. ;mssql.textsize = 4096 Длина текстовых строк по умолчанию. Возможные значения: от О до 2 147 483 647. ;mssql.batchsize = 0 Размер порций (число записей), возвращаемых запросом. О — все записи запроса возвращаются одновременно. [Ingres II] Ingres.allow_persistent = On Допускает либо не допускает устойчивые подключения к Ingres II. Ingres.max_persistent = -1 Наивысшее число устойчивых подключений к Ingres II на один процесс (значение -1 обозначает неимение ограничений). ingres.maxjinks = -1 Наивысшее число подключений к Ingres II на один процесс, включая устойчивые (значение -1 обозначает неимение ограничений). Ingres.default_database = Устанавливает базу данных по умолчанию. Указывается в строке формата: [nodejid: ]dbname[/srv_c"lass]. ingres. defauU_user = Устанавливает имя пользователя но умолчанию, ingres.default_password = Устанавливает пароль пользователя по умолчанию. Параметры сессий [Session] session.auto_start = 0 Механически инициализирует сессию при запуске сценария ('если не O) session, savejiandler = files Функция-обработчик для сохранения/восстановления данных. По умолчанию данные сессии сохраняются в файлах. session.save_path = /tmp Довод, передаваемый в функцию save_handler. Для файлов, в которых сохраняются данные сессий, это каталог их размещения. session.use_cookies = 1 Разрешает применять cookie session.name = PHPSESSID Имя сессии (применяется как имя основного cookie, содержащего идентификатор сессии). В имени могут применяться только алфавитно-цифровые символы. session.cookie_lifetime = 0 Время жизни cookie в секундах, при 0 — пока работает браузер session.cookie_path = Путь в URL, для которого действителен cookie сессии. session.cookie_domain = Домен, для которого действителен cookie. session.serialize_handler = php Обработчик сериализации данных, php — типовой обработчик PHP. Также дозволено указать wddx. session.gc_probability = 1 Процентная вероятность того, что при всей инициализации сессии будет запускаться процедура «сбора мусора». session.gcjnaxlifetime = 1440 Число секунд, по прошествии которых сохраненные данные сессии будут считаться «мусором» и могут быть удалены процессом «сбора мусора». session.referer_check = Проверяет либо не проверяет значение HTTP Referer (адрес страницы, с которой был осуществлен переход на нынешнюю). Традиционно применяется для проверки морально хранимых URL, содержащих идентификаторы. session.entropy_length = 0 Число читаемых из файла байтов. ;session.entropy_file = /dev/urandom Программа, применяющаяся для генерации идентификаторов сессии. Для Unix возможно применять /dev/random либо /dev/urandom. ;session.entropy_length = 16 Размер в бантах идентификатора сессий session.cachejlimiter = nocache Установка системы кэширования HTTP. Допустимые значения: nocache, private, public. Если указывается пустое значение, то заказчик использует собственную систему кэширования, заданную в его системе по умолчанию. session.cache expire = 180 Время устаревания кэшированных страниц в минутах. session.use_trans_sid = 1 Применять механическое добавление в ссылки идентификаторов сессии. Для этого РНР должен быть скомпилирован с параметром --enable-trans-sid. ur"l_rewriter.tags = "a=href,area=href,frame=src,i nput=src,form=fakeentry" Загрузка модулей Extension enable_dl = On Эта директива исключительно пригодна для модуля РНР сервера Apache. С ее подмогой дозволено позволить загрузку дополнительных модулей для одних виртуальных серверов (либо каталогов) и запретить для других. Для модуля РНР сервера IIS данный параметр также механически блокируется. Основная повод блокирования этого параметра — безопасность, потому что при разрешении динамической загрузки ограничения safe_ mode и open_basedir исчезают. В неопасном режиме данный параметр механически блокируется. extension_dir = Каталог, в котором размещаются загружаемые модули РНР. Обыкновенно каталог именуется extensions. extension = extensionfilename Указание модуля, тот, что должен быть загружен при старте РНР. Рекомендуется указывать имя файла без пути. Скажем, для Windows: extension=msql.cm, а для UNIX: extension=msql.so. Загружаемые модули PHP (extensions) Изложение загружаемых модулей приводится для системы Windows. В комплекте РНР, поставляемом для Windows, следующие модули являются теснее встроенными (built-in):
Следующие модули дозволено загрузить функцией dl() во время исполнения либо раскомментировав соответствующие строки в файле конфигурации (* — файл не входит в комплект поставки РНР). Некоторым модулям требуются добавочные библиотеки, некоторые из которых входят в комплект поставки и размещаются в каталоге dll (не позабудьте переместить их в доступный для системы каталог либо указать путь к ним в переменной окружения PATH). php_bz2.dll php_ctype.dll php_cpdf.dll php_curl.dll (требует msvcr70.dll*, sslleay32.dll) php_cybercash.dll php_db.dll php_dba.dll php_dbase.dll php_domxml.dll (требует Iibxml2.dll) php_dotnet.dll php_exif.dll php_fdf.dll (требует FdfTk.dll) php_filepro.dll php_gd.dll php_gettext.dll (требует php_hyperwave.dll gnu_gettext.dll) php_iconv.dll php_ifx.dll (требует isqlt09a.dll*) php_iisfunc.dll php_imap.dll php_ingres.dll (требует oiapi.dll*) phpjnterbase.dll (требует gds32.dll) phpjava.dll php_ldap.dll (требует libsasl.dll) php_mcrypt.dll (требует mcrypL.dll*) php_mhash.dll php_ming.dll php_mssql.dll (требует Ntwdblib.dll) php_oci8.dll (требует oci.dll) php_openssl.dll (требует msvcr70.dll*, Iibleay32.dll) php_oracle.dll (требует ociw32.dll*) php_pdf.dll php_pgsql.dll php_printcr.dll php_sablot.dll (требует sablot.dll) php_snmp.dll djustright php_sybase_ct.dll php_yaz.dll (требует libct.dll*) php_zlib.dll | Функции модулей dl Загрузка библиотеки растяжения РНР во время исполнения int dl (string library) dl ("extensions/php_db.dll"), См. также параметр конфигурации extension_dir. get_loaded_extensions Определение перечня загруженных модулей array get_loaded_extensions (void) Возвращает массив, содержащий список имен модулей РНР, которые были прикомандированы, загружены при старте РНР и загружены во время исполнения функцией dl(). рrint_r (get_loaded_extensions()); Выводит информацию, сходственную дальнейшей: Array [0] => xml См. также get_extension_funcs(). extension_loaded Проверка загрузки модуля boo! extension^oaded (string name) Возвращает TRUE, если указанный модуль name теснее был загружен. Обратите внимание на то, как пишется имя модуля, и на регистр символов. См. также phpinfo(). get_extension_funcs Определение функций модуля array get_extension_funcs (string modulejiame) Возвращает массив, содержащий перечисление имен функции, содержащихся в модуле module_name. Данный модуль должен быть заблаговременно загружен. pnnt_r (get_extension_funcs ("xml")): Если нужно получить перечисление всех доступных функций, используйте функцию get_defined_functions(). См. также get_loaded_extensions(). phpinfo Итог каждой информации РНР в формате HTML int phpinfo ([int what]) Выводимая информация включает: параметры компиляции РНР и его переменные, добавочные модули, версии, информацию сервера и системы, пути значения конфигурации, параметры вызова сценария, лицензию РНР. Для сокращения объема выводимой информации дозволено указать один из следующих разделов what (если он не указывается, то подразумевается INFO_ALL):
См. также: phpversion(), phpcredits(), php_logo_guid(). phpversion Приобретение версии PHP string phpversion (void) Возвращает строку, содержащую наименование версии интерпретатора РНР. // выводит скажем. 4.0 См. также: phpinfo(), phpcredits(), php_logo_guid(). phpcredits HTML-распечатка разработчиков РНР void phpcredits (int flag) Выводит информацию о создателях и их взносе в разработку пакета РНР. phpcredits(CREDITS_GENERAL): Флаги дозволено комбинировать дальнейшим образом: phpcredits(CREDITS_GROUP + CREOITS_DOCS +
См. также: phpinfo(), phpversion(), php_logo_guid(). php_sapi_name Приобретение типа интерфейса между web-сервером и РНР string php_sapi_name(void); Возвращает строку, содержащую строчными буквами тип интерфейса. Для CGI РНР, это будет строка "cgi", для mod_php под Apache -"apache" и т. п. $sapi_type - php_sapi_name(). php_uname Определение операционной системы string php_uname(void): Возвращает строку, содержащую наименование операционной системы, скажем «Windows NT 5.0 build 2195». if (substr(php_uname(). 0. 7) ini_set Метаморфоза параметра конфигурации string ini_set (string varname, string newvalue) Устанавливает для указанного параметра varname значение newvalue. При фуроре возвращает бывшее значение; при ошибке - FALSE. См. также: ini_alter(), ini_get(), ini_restore(). ini_alter Синоним функции ini_set string ini_alter (string varname, string newvalue). ini_get Приобретение значения параметра конфигурации string ini_get (string varname) Возвращает нынешнее значение параметра с именем varname. Эта функция дозволяет получить все доступные РНР параметры. При ошибке возвращает FALSE. См. также: ini_alter(), ini_restore(), ini_set(). ini_restore Поправление значения параметра конфигурации stnng ini_restore (string varname) Устанавливает значение параметра varname в изначальное. echo ini_set("precision". 20).
get_cfg_var Определение значения параметра из файла php.ini string get_cfg_var (string varname) Подметьте, в различие от функции ini_get() возвращается не нынешнее значение параметра, а то, которое содержится в файле конфигурации. Эта функция также не возвращает прочие параметры (скажем, из конфигурации самого сервера). При ошибке возвращает FALSE. getenv Приобретение значения переменной окружения string getenv (string varname) При ошибке возвращает FALSE. $тр = getenv ("REM01E_ADDR"); Список переменных окружения выдается функцией phpinfo(). Список этих переменных также определяется спецификацией CGI (http:// hoohoo.ncsa.uiuc.edu/cgi/). Функция не работает в модуле PHP ISAPI. putenv Установка переменной окружения void putenv (string setting) putenv ("UNIQID=$umqid"). get_magic_quotes_gpc Приобретение нынешнего значения параметра magic_quotes_gpc. long getjnagic_quotes_gpc (void) Возвращается: 0 для Off, 1 для On. См. главу «Файл конфигурации». См. также: get_magic_quotes_runtime(), set_magic_quotes_runtime(). getjnagic_quotes runtime Приобретение нынешнего значения параметра magic_quotes_runtime long get_magic_quotes_runtime (void) Возвращается: 0 для Off, 1 для On. См. главу «Файл конфигурации». См. также: getjnagic_quotes_gpc(), setjnagic_quotes_runtime(). set_magic_quotes_runtime Установка нынешнего значения параметра magic quotes runtime long set_magic_quotes_runtime (int new_setting) В доводе new_setting указывается: О для Off, 1 для On. См. главу «Файл конфигурации». См. также: get_magic_quotes_gpc(), getjnagic_quotes_runtime(). phpjogo_guid Приобретение GUID логотипа PHP string php_logo_guid (void) Возвращает, скажем, PHPE9568F34-D428-lld2-A769-OOAA001ACF42. См. также: phpinfo(), phpversion(), phpcredits() zend_logo_guid Приобретение GUID логотипа Zend string zend_logo_guid (void) Информация сценария PHP define Определение именованной константы int define (string name, mixed value [, int case_insensitive]) Определение именованной константы сходно с определением переменной, но:
Имя определяемой константы указывается в доводе name, а значение — в value. При указании третьего довода со значением 1 имя константы становится бесчувственным к регистру. В другом случае регистр учитывается, то есть: константы CONSTANT и Constant будут представлять разные значения. <?php Возвращается TRUE либо FALSE при ошибке (скажем, если константа теснее была определена). См. также: definedO и раздел «Константы». defined Проверка существования константы int defined (string name) Возвращает TRUE, если константа с именем, указанным name, была определена; напротив FALSE. / <?php if (defined("CONSTANT")) См. также: defineO и раздел «Константы». get_required_files Определение списка файлов, подключенных директивами require_once() array get_required_files (void) Возвращает ассоциативный массив имен файлов. Индексами будут доводы, указанные в директивах require_once(), без растяжения .рhр. <?php require_once Приведенный пример должен вывести (подразумевается существование файлов): Файлы Reqirreconce: Array См. также: require_once(), include_once(), getjncluded_files(). get_included_files Определение списка файлов, подключенных директивами include_once() array get included_flies (void) Функция действует подобно get_required_files (). См. также: require_once(), inc1ude_once(), get_required_files(). getrusage Определение расходования источников array getrusage ([int who]) Это интерфейс одноименной системной команды. Возвращается ассоциативный массив (см. системную документацию). Если указывается довод со значением 1, то происходит вызов типа RUSAGE_ CHILDREN (источники, потребляемые дочерними процессами). В некоторых системах (скажем, Windows) функция может не трудиться. $dat = jetftibdye() . get_current_user Определение имени обладателя нынешнего сценария PHP string get_current_user (void) Традиционно это имя того пользователя, тот, что запускает сценарий, для серверного модуля — того, кто запускает сервер. См. также: getmyuid(), getmypid(), getmyinode() и getlastmod(). getmyuid Определение DID обладателя сценария PHP Int getmyuid (void) Возвращает номер-идентификатор пользователя либо FALSE при ошибке. См. также: getmypid(), get_current_user(), getmyinode() и getlastmod(). getmyinode Определение номера inode нынешнего сценария PHP int getmyinode (void) Функция не работает в Windows. При ошибке возвращает FALSE. См. также: getmyuid(), get_current_user(), getmypid() и getlastmod(). getmypid Определение дескриптора процесса PHP int getmypid (void) Возвращает системный номер либо FALSE при ошибке. См. также: getmyuid(), get_current_user(), getmyinode() и getlastmod(). getlastmod Определение времени последней модификации страницы int getlastmod (void) Возвращает время последней модификации нынешней страницы (либо FALSE при ошибке) в формате «Unix timestamp», которое после этого может быть передано в функцию date(). // выводит, скажем: См. также: date(), getmyuid(), get_current_user(), getmyinode() и getmypid(). Управление исполнением сценария PHP set_time_limit Установка предельного времени исполнения сценария , void set_time_limit (int seconds) При запуске сценария PHP запускает системный таймер, и если время (выделенное сценарию для выполнения) истекает, а сценарий еще не завершился, РНР принудительно завершает сценарий (генерируя неизбежную ошибку исполнения). Это не допускает собрания большого числа сценариев, расходующих источники сервера, но, вероятно, «зависших» (скажем, если в них обнаружился безграничный цикл либо они пытаются дождаться подключения к не отвечающему серверу). По умолчанию возможное время исполнения сценария устанавливается в файле конфигурации1 параметром max_execution_time (традиционно оно равно 30 с). Но для нынешнего сценария это значение дозволено изменить вызовом данной функции, указав время в секундах в ее доводе. Если указывается значение 0, то тогда временное лимитация снимается. Отсчет времени начинается от момента вызова функции. Скажем, если сценарий теснее выполнялся в течение 15 секунд, а после этого вызывается функция set_time_limit(20), то всеобщее наивысшее время исполнения сценария становится равным 35 секундам. Если сценарий выполняется в неопасном режиме (с установленным параметром safe mode), то тогда вызов этой функции игнорируется и применяется значение из файла конфигурации. sleep Приостановление выполнения (на секунды) void sleep (int seconds) Выполнение сценария приостанавливается на указанное число секунд seconds. См. также usleep(). usleep Приостановление выполнения (на микросекунды) void usleep (int micro_seconds) Выполнение сценария приостанавливается на указанное число микросекунд. Эта функция не работает в Windows. См. также sleep(). die Итог сообщения и заключение нынешнего сценария void die (string message) Это языковая конструкция, ничего не возвращающая. <?php $filename = См. также exit(). exit Заключение нынешнего сценария void exit(void); Языковая конструкция, ничего не возвращающая. См. также die(). assert Проверка истинности значения int assert (string]boo! assertion) В качестве довода функции может быть указано значение либо строка, содержащая код РНР (как в функции evaK)). Функция проверяет, является ли значение (либо выражение) равным FALSE, и, если это так, исполняет определенные действия. Поведение функции определяется установками в файле конфигурации либо при вызове функции assert_options(). Обыкновенно эта функция применяется экстраординарно в целях отладки, для проверки тех значений, которые неизменно обязаны быть правдивы (скажем: подключение модуля, свободное пространство на диске и т. д.). В совокупности же выполнение сценария не должно зависеть от таких проверок, а применять обыкновенные проверки возвращаемых функциями значений. function handler(){ Приведенный пример выведет: а: 1 Warning: Assertion assert_ options Определение параметров assert mixed assert_options (int parameter [, mixed value]) Функция дозволяет определить поведение конструкции assert(). Возвращается предыдущее значение параметра (либо значение FALSE при ошибке), указанного в первом доводе одной из следующих констант:
Если значение нужно переопределить, его указывают во втором доводе. eval Истолковывание строки как кода РНР mixed eval (string code_str) Исполняет указанный в строке code_str код как обыкновенный код РНР. Помимо каждого прочего, это может быть благотворно для сохранения кода в текстовом поле базы данных с целью дальнейшего исполнения. H'le забывайте, что указанный в строке код должен быть синтаксиче-снки верным (скажем, обязаны присутствовать точки с запятой позже всякой команды и т. п.), в отвратном случае сценарий будет заавершен в этой строке с оплошностью. Рассматривайте также, что те значе-н«ня переменных, которые будут установлены в данной строке, будут ивспользоваться в оставшейся части сценария. Если в строке указан оператор return, то тогда выполнение указан-нного кода будет досрочно закончено и возвращенное значение мож-нно получить как значение, возвращаемое самой функции. <"-?php Ssstnng = 'сундук' . Приведенный выше сценарий выведет: Это Sstnng, а внутри Ранг подключений Морально РНР имеет три ранга подключения:
При типичном выполнении сценария энергично состояние NORMAL. Если во время загрузки страницы пользователь нажимает кнопку STOP, энергичным становится состояние ABORTED. Если сценарий выполняется дольше отведенного ему времени (см. функцию set_tirae_ liraitO), устанавливается флаг состояния TIMEOUT. Допустимо определить, как должен вести себя сценарий в зависимости от этих условий. Если требуется, дабы сценарий продолжал свое выполнение при обрыве соединения пользователем, необходимо установить в файле конфигурации значение параметра ignore_user_abort = 1 (это также дозволено сделать в файлах конфигурации Apache). Дозволено также воспользоваться функцией ignore_user_abort(). В отвратном случае, но умолчанию, если браузер отказывается от приема данных сценария, сценарий завершается. Дабы игнорировать заключение сценария таймером, нужно применять функцию set_time_limit(). Если функцией register_shutdown_function() была установлена функция «запускаемая при заключении сценария», то, вне зависимости от ранга подключения, она будет выполнена перед тем, как сценарии завершится. И в «завершающей» функции дозволено будет узнать (с подмогой функций: connection_aborted() ,connection_timeout() и connecti on_ status()), был ли сценарий закончен типично либо досрочно. connection_aborted Определение обрыва подключения пользователем int connection_aborted (void ) Возвращает TRUE, если подключение было разорвано пользователем. connection_status Определение ранга подключения Int connection_status (void ) Возвращает значение битового поля (см. выше), разрешающее узнать в «завершающей» функции, был ли сценарий закончен досрочно и причину этого. Скажем, если возвращается 3 (ABORTED | TIMEOUT), то это обозначает, что время исполнения истекло, а также то, что пользователь отказался от загрузки страницы. Если возвращается 0 (то есть значение NORMAL), то это обозначает, что выполнение сценария не было прекращено. connection_tameout Определение наступления тайм-аута int connectionjtimeout (void ) Возвращает TRUE, если время исполнения сценария истекло. ignore_user_abort Прерывание сценария при обрыве подключения int ignore_user_abort ([int setting]) Доводом setting дозволено указать, нужно ли досрочно завершать выполнение сценария, если связь с заказчиком утрачена. Если довод не указан, то возвращается нынешняя установка. register_shutdown_function Регистрация функции в качестве завершающей int register_shutdown_function (string func) Регистрирует функцию с именем func в качестве функции, запускаемой позже заключения сценария. Подметьте: потому что позже заключения функции никакие средства итога недостижимы, это делает для функции, зарегистрированной в качестве «завершающей», недостижимыми обыкновенные средства отладки, такие как команды print либо echo. Добавочные функции get_browser Определение возможностей браузера object get_browser ([string user_agent]) Возвращаемая информация извлекается из файла browscap.ini. Для определения браузера применяется значение переменной $HTTP_USER_ AGENT либо значение, содержащееся в доводе user_agent. Информация возвращается в виде свойств объекта и отражает возможности клиентского браузера (скажем, версию, поддерживает ли он javascript либо cookies). <?php function list_array Содержимое допустимого итога: Mozilla/4.5 ten] (Xll; U. Linux 2.2.9 1586) Для того дабы функция могла работать, следует верно указать месторасположение файла browscap.ini в файле конфигурации. highlight_file Итог содержимого файла с цветовой разметкой boolean highlight_file (string filename) Имя (либо путь) файла указывается'в доводе. Цвета выделения синтаксиса определяются в файле конфигурации РНР. Возвращает TRUE либо FALSE при ошибке. Скажем, дабы принудить сервер Apache при приобретении запроса с URL, содержащего значение вида «пир://имя.сервера/5оигсе/путь/ к/файлу.php», выводить листинг файла «1тЬ1р://имя.сервера/путь/к/ файлу, рпр», сделайте следующее. Добавьте в файл httpd.conf дальнейший фрагмент: # Используем директиву "ForceType" Сделайте в корневом web-каталоге дальнейший файл с именем source: <HTML><HEAD> См. также: rnghlight_string(), show_source(). highlight_string Выделение строки цветом void highlight_string (string str) Функция действует аналогично highlight_file(), но использует не содержимое файла, а указанной строки. См. также: rngh1ight_file(), show_source(). show_source Синоним функции highlightjile boolean show_source (string filename) См. также: highlight_string(), highlight_file(). leak Имитация утраты памяти void leak (int bytes) Функция применяется для отладки администратора памяти, его проверки на способность ликвидировать неосвобожденные блоки памяти позже заключения сценария. Размер блока памяти указывается в байтах доводом bytes. uniqid Генерация неповторимого идентификатора int uniqid (string prefix [, boolean leg]) Возвращает идентификатор, сгенерированный на основе значения нынешнего времени в микросекундах и имеющий префикс prefix. Если указывается добровольный довод leg со значением TRUE, к концу идентификатора будет добавляться «составной хеш энтропии LCG», делающий его значение больше уникальным. Префикс применяется для приобретения уникальных идентификаторов, генерируемых единовременно на различных машинах (когда время идентичное). Его длина может добиваться 114 символов. Если в качестве его значения передается пустая строка, то длина сгенерированного идентификатора будет 13 символов (при lcg=TRUE — 23 символа). Принято также дообрабатывать полученное значение криптографическими способами (скажем, это зачастую делается в идентификаторах сессий). $token = md5 (uniqid ("")): Эти строки генерируют 32 байта (128-битное шестнадцатеричное число): они владеют максимальной уникальностью, которая только может понадобиться. pack Пакетирование данных в двоичную строку string pack (string format [, mixed args ...]) В первом доводе format указывается строка формата, а в последующих — элементы данных, вносимых в результирующую строку. Алгорифм функции заимствован из Perl и по большей части использует те же коды. Строка формата состоит из кодов 2-х видов: кода типа элементов данных и числителя (длины данных либо числа элементов данных данного типа), указанного позже кода типа. Числитель может быть числом либо значением «*» (тогда длина определяется механически). Если числитель не указывается, он считается равным 1. Для кодов a, A, h, H числитель указывает число символов, вносимых в строку данных; а для кода 0 — безусловную позицию в строке итога, начиная с которой вносятся символы дальнейшего элемента данных. echo pack("А"."Abe")," Возможны следующие коды типов данных:
Подметьте, что указание на наличие знака в числе реально применяется только при распаковке. Не забывайте также, что РНР хранит числа в формате знаковых, системного размера. И проверяйте, умещается ли огромное число (РНР может спрятано преобразовать его в дробное) в отведенный для него размер (напротив оно будет урезано без вашего ведома). unpack Распаковка двоичной строки array unpack (string format, string data) Возвращает в ассоциативном массиве элементы данных, извлеченных из строки data, согласно формату format. В строке формата указываются последовательности «код_формата [числитель] имя_элемента» без пробелов, поделенные слешем <</>>. Изложение кодов формата и комментарии см. в функции pack(). Sdata - unpack ("ccn". -1.128.0xFC9a): iptcparse Истолковывание двоичного блока 1РТС array iptcparse (string iptcblock) Функция извлекает данные из маркеров АРР (обыкновенно они содсржатся в файлах Интернет-графики) и возвращает полученную информацию в массиве. См. пример в функции GetlmageSize(), а также информацию по адресу: http://www.iptc.org/. Отслеживание и обработка ошибок РНР имеет следующие типы ошибок и предупреждений:
Указанные значения в виде чисел либо консгант дозволено комбинировать, формируя битовую маску ошибок, о которых нужно уведомлять в ходе исполнения сценария. Для комбинирования применяются битовые операторы, но в конфигурационном файле php.ini ' распознаются только «|», «-», «!» и <<&>>. В PHP 4 по умолчанию разрешены сообщения вида E_ALL & -EJJOTICE, то ость сообщаться должно все, помимо обыкновенных сообщений. Дозволено переопределить эту установку параметром файла конфигурации еггог_ reporting (ее также дозволено указывать в файлах конфигурации сервера Apache); а во время исполнения — функцией error_reporting(). Если при вызове функции перед ее именем указать символ «@», то в случае появления ошибки в этой функции сообщение о нем выдаваться не будет. В текущее время оператор пренебрежения ошибок блокирует даже выдачу сообщений о скептических ошибках, при происхождении которых сценарий досрочно завершается. Если разрешен параметр конфигурации track_errors, то сообщение об ошибке сохраняется в всеобщей переменной $php_errormsg. «?php // определенный Функции обработки ошибок errorjog Посылка сообщения об ошибке int error_log (string message, int message_type [, string destination [, string extra_headers]]) Сообщение, посылаемое этой функцией, может быть направлено в журнал системных сообщений web-сервера, порт TCP либо в файл. В первом доводе, message, указывается само оглавление сообщения; во втором, messagejtype — куда оно должно быть направлено. Предназначение обозначается следующими значениями:
Возможные варианты использования функции: if (!0ra_l_ogon (Susername. Spassword)) error_reporting Установка видов уведомляемых ошибок int errorj-eporting ([int level]) Возвращает предыдущую установку типа уведомляемых ошибок; если указан довод, то снова переопределяет ее. В доводе дозволено указывать константу, число либо битовую маску. Усердствуйте применять константы взамен численных значений, дабы сберечь совместимость с грядущими версиями РНР. errorj-eporting (2039). set_error_handler Установка пользовательского обработчика ошибок string set_error_hand1er (string error_handler) Функция возвращает имя функции, ранее определенной в качестве обработчика ошибок (либо FALSE при ошибке), и устанавливает, в качестве нового обработчика, функцию с указанным в доводе еггог_ handler именем. Обыкновенно пользовательский обработчик ошибок работает в паре с функцией tngger_error(), генерирующей ошибку; это может быть использовано (аналогично аналогичной конструкции работы с исключениями в С) для освобождения выделенных источников (скажем, удаления сделанных файлов), если сценарий не может типично кончаться. Функция, устанавливаемая в качестве обработчика ошибок, должна принимать пять параметров (три последних являются дополнительными и могут не обрабатываться):
<?php // определить константы При выполнении сценария итог будет дальнейшим: Array ( )[0] => 2 [1] => 3 Не забывайте, что при установке пользовательского обработчика ошибок типовой обработчик РНР не исполняется. Установки еггог_ reporting() также не будут иметь результата, и пользовательский обработчик должен уметь обрабатывать все виды ошибок (значение еггог_ reporting() дозволено узнать и делать соответственно). Подметьте, что код ошибки будет равен 0, если оплошность появилась в функции, выоод ошибок для которой был блокирован оператором «@». Также помните, что завершать сценарий в обработчике нужно t очевидно (скажем, с поддержкой функции сhе()), если, безусловно, в этом есть надобность. Если обработчик ошибок завершается с подмогой return, то выполнение сценария продолжается с того места, в котором появилась оплошность (то есть исполняются инструкции, которые следуют за той инструкцией, в которой появилась оплошность). См. также: error_reporting(), restore_error_handier(), trigger_error(), user_error() error_reporting Установка видов уведомляемых ошибок int errorj-eporting ([int level]) Возвращает предыдущую установку типа уведомляемых ошибок; если указан довод, то снова переопределяет ее. В доводе дозволено указывать константу, число либо битовую маску. Усердствуйте применять константы взамен численных значений, дабы сберечь совместимость с грядущими версиями РНР. errorj-eporting (2039). set_error_handler Установка пользовательского обработчика ошибок string set_error_handler (string error_handler) Функция возвращает имя функции, ранее определенной в качестве обработчика ошибок (либо FALSE при ошибке), и устанавливает, в качестве нового обработчика, функцию с указанным в доводе еггог_ handler именем. Обыкновенно пользовательский обработчик ошибок работает в паре с функцией tngger_error(), генерирующей ошибку; это может быть использовано (аналогично аналогичной конструкции работы с исключениями в С) для освобождения выделенных источников (скажем, удаления сделанных файлов), если сценарий не может типично кончаться. Функция, устанавливаемая в качестве обработчика ошибок, должна принимать пять параметров (три последних являются дополнительными и могут не обрабатываться):
<?php // определить константы При выполнении сценария итог будет дальнейшим: Array ( )[0] => 2 [1] => 3 Не забывайте, что при установке пользовательского обработчика ошибок типовой обработчик РНР не исполняется. Установки еггог_ reportingO также не будут иметь результата, и пользовательский обработчик должен уметь обрабатывать все виды ошибок (значение еггог_ reportingO дозволено узнать и делать соответственно). Подметьте, что код ошибки будет равен 0, если оплошность появилась в функции, выоод ошибок для которой был блокирован оператором «@». Также помните, что завершать сценарий в обработчике нужно t очевидно (скажем, с поддержкой функции сhе()), если, безусловно, в этом есть надобность. Если обработчик ошибок завершается с подмогой return, то выполнение сценария продолжается с того места, в котором появилась оплошность (то есть исполняются инструкции, которые следуют за той инструкцией, в которой появилась оплошность). См. также: error_reporting(), restore_error_handier(), trigger_error(), user_error() restore_error_handler Поправление предыдущего обработчика ошибок void restore_error_handler (void) Устанавливает в качестве функции обработчика ошибок ту, котораябыла таковой до последнего вызова функции set_error_handler(). Предыдущим обработчиком может быть ранее установленный нользовательский обработчик либо встроенный обработчик PUP. См. также: errorj-eporting(), set_error_handler(), trigger_error(), user_ error(). trigger_error Генерация ошибки void trigger_error (string errorjnsg [, int error_type]) Очевидно вызывает функцию, установленную для обработки ошибок, и обыкновенно применяется в паре с обработчиком ошибок (см.: set_ error_handler()). Функция способна генерировать только пользовательские типы ошибок (семейство констант EJJSER), и по умолчанию, если не указан тип ошибки error_type, он считается E_USER_NOTICE. Допустимо конструировать трудные конструкции генерации и обработки ошибок и исключительных обстановок. if (assert ($divisor == 0)) См. также: error_reporting(), set_error_handler(), restore_error_handler(), user_error(). user_error Синоним функции trigger_error() void user_error (string error_msg [, int error_type]) Данная группа функций дозволяет руководить тем, как РИР при выполнении сценария выводит информацию. Это может быть благотворно в разных обстановках, в особенности при посылке браузеру HTML-заголовков (headers) позже того, как сценарий начал выводить HTML-текст. (В обыкновенном случае немыслимо послать заголовок позже того, как был начат итог текста.) Эти функции не воздействуют на заголовки, посланные функциями header() либо setcookie(), а только па функции, сходственные echo() и HTML-тексту между блоками РНР-кода. <?php ob_start(): В примере выше итог командой echo() будет сохранен в буфере итога до вызова функции ob_end_flush(). В то же время вызов setcookie() удачно сберегает cookie, не вызывая ошибки. См. также: header() и setcoukie(). ob_start Включение буферизации итога void ob_start ([string output_callback]) Позже вы-зова этой функции включается буферизация итога и, пока она энергична, никакие из выводящихся данных не будут посланы браузеру, а будут сохраняться во внутреннем буфере РНР. Содержимое буфера может быть скопировано в строковую переменную функцией ob_get_contents(). Для итога содержимого из буфера применяется функция ob_end_f"lush(). Удалить содержимое буфера дозволяет функция ob_end_clean(). В доводе output_callback дозволено указать функцию, которая будет механически вызываться при итоге содержимого буфера. Обыкновенно это применяется для модификации содержимого буфера перед итогом (скажем, сжатия). Тогда при вызове функции ob_end_flush() в указанную функцию будет передаваться содержимое буфера, а то, что она возвратит, будет выведено (подметьте, сама функция не должна ничего выводить). Буферизация может быть вложенной, и тогда она обрабатывается соответственно вложенности; и содержимое, выводимое из буфера нижнего яруса, будет включаться в буфер верхнего яруса. Не забывайте, что для итога каждого буферизированного содержимого нужно вызвать функцию ob_end_flush() сколько же раз, сколько была вызвана ob_start(). <'php function c($str) См. также: ob_get_contents(), ob_end_f"lush(), ob_end_clean() и ob_implicit_ flush(). ob_get_contents Приобретение содержимого буфера итога string ob_get_contents(void); Если буферизация неактивна, возвращается FALSE. См. также: ob_start() и ob_get_length(). ob_get_length Приобретение длины данных в буфере итога string ob_get_length(vcrid); Если буферизация неактивна, возвращается FALSE. См. также: ob_start() и ob_get_contents(). ob_end_flush Итог содержимого буфера void ob_end_flush(void); Позже итога буфер нынешнего яруса очищается, следственно вызывайте функцию ob_get_contents() предварительно, если нужно получить его содержимое. См. также: ob_start(), ob_get_contents() и ob_end_clean(). flush Итог каждого содержимого буфера void flush(void) Функция воздействует только на буферизацию РНР и не может контролировать схему буферизации wcb-сервера либо браузера. , Некоторые серверы, в особенности под Win32, буферизируют выводящиеся сценарием данные до того, как сценарий завершится и данные будут отосланы браузеру. Браузер, в свою очередь, также может буферизировать получаемые данные до их отображения. Netscape, скажем, буфсршируег текст до приобретения символа заключения строки либо открывающего тега, а для таблиц — до приобретения тега </table> таблицы верхнего яруса. ob_end_clean Чистка буфера void ob_end_clean(void); Вызов функции отключает буферизацию на нынешнем ярусе. См. также: ob_start() и ob_end_flush(). ob_implicit_ flush Установление режима буферизации void objmplicit_flush (jjnt flag]) Если в доводе указано ненулевое значение либо оно не указано, то при осуществлении всякой операции итога будет неявно вызываться функция flush(). При вызове функции неявно вызывается ob_end_f"lush(). См. также: flush(), ob_start() и ob_end_flush(). Эти функции разрешают отсылать данные браузеру заказчика непринужденно на ярусе протокола HTTP. headers_sent Проверка отсылки заголовков boolean headers sent (void) Возвращает TRUE, если заголовки HTTP теснее были отосланы; напротив — FALSE. См. также header().
header Посылка простого заголовка HTTP int header (string string) Функция применяется в начале сценария HTML (до итога прочего текста) для низкоуровневой посылки строк заголовков по протоколу HTTP. Спецификация заголовков HTTP 1.1 (http://www.w3.org/ Г Protocols/rfc2616/rfc2616) определяет их формат и предназначение. Не забывайте, что итог может протекать также из вложенных файлов, если они были подключены директивой include() либо с поддержкой параметра auto_prepend. Особенно всеобщие варианты применения заголовков представлены ниже. Переадресация. Если браузер получает заюлонок Location, то он пытается загрузить страницу с нового указанного адреса (сервер Apache при этом также получает код ранга REDIRECT). <?php Выполнение команды HTTP/ (регистр не главен). header ("HTTP/1.0 404 Not Found"). Управление кэшированием (на браузере либо прокси-сервере). Следующие четыре команды воспрещают кэширование разными методами. header ("Expires: Mon. 26 Jul См. также headers_sent(). HTTP-аутентификация в PHP Осуществлять аутентификацию HTTP дозволено, только если PHP установлен как модуль web-сервера Apache. Для версии CGI и на других серверах (скажем, IIS) это нереально. Аутентификация происходит путем посылки (с подмогой функции Heatier()) заголовка Authentication Required, что принуждает браузер вывести окно для ввода имени пользователя и его пароля. Позже того как пользователь вводит эти данные, браузер снова запрашивает страницу, передавая серверу переменные $PHP_AUTH_USER, $PHP_AUTH_PW и $PHP_AUTH_TYPE, соответственно со значениями имени пользователя, его пароля и способа аутентификации. В текущее время поддерживается только аутентификация простого типа «Basic». См. также функцию Header(). <?рhр if(hsset($PHP_ Cookies PHP всецело поддерживает cookies. Cookies — это механизм HTTP для сохранения информации о пользователе на его клиентской машине. Они работают дальнейшим образом:
При приобретении cookies PHP преобразовывает их в переменные, как и переменные, полученные HTTP способами GET и POST (они также сохраняются в глобальном массиве $HTTP_COOKIE_VARS[]). Таким образом дозволено ассоциировать определенную информацию с определенным пользователем (а реально его браузером) и передавать данные между страницам» одного сайта. Скажем, так дозволено сберегать настройки пользователя для сайта либо для электронных магазинов, информацию о том, что находится в «покупательской корзине» пользователя. В отвратном случае пришлось бы передавать всю эту информацию (зачастую довольно объемную) в строке адреса URL. Имеется также альтернативный и зачастую больше предпочтительный вариант — применение сессий (см. ниже). Не забывайте, что cookies являются частью заголовков HTTP, и передавать их следует до того, как началась передача текста страницы (а также до того, как функцией header() будут посланы обыкновенные заголовки). Таковы правила HTTP. Стоит подметить, что для одной страницы не может быть установлено больше 20 cookies. А также, что значения cookies дозволено будет получить только при загрузке дальнейшей страницы удалять cookies необходимо с теми параметрами, с которыми они были сделаны. setcookie Посылка cookie / int setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]) Функция посылает переменную cookie в заголовке HTTP. Все доводы, помимо имени name, необязательны (если какие-то указывать не требуется, то тогда их значением может быть пустая строка "" для строковых доводов и 0 для числовых). Если у браузера теснее имелся cookie с таким именем, он будет заменен новым. В доводе value дозволено указать значение, которое нужно сберечь. Время, до которого браузер должен беречь у себя cookie, указывается в доводе expire (в формате Unix time, возвращаемом функциями time() либо mktirae()). Если в доводе secure указывается ненулевое значение, то cookie будет передаваться в зашифрованном виде через протокол HTTPS. В доводах path и domain дозволено указать, страницам из каких каталогов какого домена нужно возвращать значения cookies. Следующие примеры устанавливают cookies: setcookie ("TestCookiel". "Test Value"):
Удалить cookies из примера выше дозволено дальнейшим образом: setcookie ("TestCookiel"): Дозволено сберегать в одном cookie одномерный массив (но устанавливать значение всего элемента необходимо по отдельности): setcookie ("cookie[three]". Документацию Netscape, описывающую cookies, дозволено обнаружить по адресу: http://www.netscape.com/newsref/std/cookie_spec.html Microsoft Internet Explorer 4 (c Service Pack 1) некорректно работает с cookies, имеющими установленный 3-й параметр. Netscape Communicator 4.05 и Microsoft Internet Explorer 3.x некорректно работают с cookies с не установленными третьим и четвертым параметрами. Сессии разрешают реализовать цельный механизм передачи данных между страницами сайта. Программная реализация имеется в библиотеке PHPLIB, но в РНР есть встроенная. Сессии работают по дальнейшей схеме.
Внутренняя реализация сессий PIIP работает дальнейшим образом. Если параметр конфигурации session.auto_start установлен (равен 1), то при запуске сценария сессия инициализируется механически (неявно вызывается функция session_start()). При этом проверяется существование идентификатора сессии и надобность его создания. Очевидно добавить переменную к данным сессии дозволяет функция session_register(). Сохранение и поправление переменных сессии определяется параметрами конфигурации track_vars (обыкновенно он разрешен неизменно) и register_globals. Если параметр register_g"lobals разрешен, то переменные сессии механически преобразуются в всеобщии и обратно (также их значения доступны в массиве $HTTP_SESSION_VARS). <?php session_register Если параметр register_globals запрещен, то тогда переменные сессии сохраняются только в глобальном ассоциативном массиве $НТТР_ SESSIONJARS. <?php session_register PHP может механически вносить идентификаторы сессий (SID) в строки локальных гиперссылок, если при компиляции был разрешен параметр —enable-trans-sid. Это бывает благотворно, если браузер заказчика не поддерживает cookie; напротив придется добавлять идентификаторы сессий в ссылки вручную. <php? # <?=SID^> По умолчганию данные сессий сохраняются в файчах (в каталоге, указанном параметром конфигурации session.save path). Так приметно снижает быстродействие, дозволено применять собственную функцию сохранения данных сессий (скажем, в БД) установив в качестве таковой с поддержкой функции session set save hand(). session_start Инициализация данных сессии bool session_start(void) Создает массив данных сессии либо сессии, переданный через cookie либо в строке запроса, дарующая сессия теснее существует) восстанавливает ранее сохраненные переменные сессии. Функция неизменно возвращает TRUE. session_destroy Истребление данных сессии bool session_destroy(void); session_ name Определение имени сессии string sessionjiame ([string name]) Возвращает имя нынешней сессии, и если указан довод, то есть ее имя на указанное name. Имя сессии является именем cookies, либо скажем в строке запросом URL. Оно должно содержать цифровые символы. По умолчанию имя устанавливается параметром session.name , файле конфигурации. Если требуется измнить его в сценарии, это должно быть сделано до открытия сессии (вызова функций session_start() либо session_register()). <?php session_module_name Определение модуля работы с сессиями string session_module_name ([string module]) Возвращает имя нынешнего модуля для работы с сессиями (традиционно это встроенный в РНР модуль). Дозволено указать имя собственного модуля module, тот, что должен применяться взамен встроенного. session_save_path Определение каталога сохранения данных сессии string session_save_path ([string path]) По умолчанию РНР сберегает данные сессий в файлах, в каталоге определенном конфигурацией. Функцией возвращается имя этого каталога, и если указан довод, то данный ранее каталог изменяется на указанный. session_ id Определение значения идентификатора сессии string session_id ([string id]) Возвращает значение идентификатора нынешней сессии; если указан довод, то заменяет его на указанное id (установить значение дозволено только до начала сессии). Значение идентификатора также хранится в константе SID. session_register Добавление переменной сессии bool session_register (mixed name [, mixed ...]) Допустимо указание разного числа доводов, содержащих имена переменных. Также дозволено указывать массив, содержащий имена переменных. Функция возвращает TRUE, если регистрация прошла удачно. session_unregister Удаление переменной сессии bool session_unregister (string name) Возвращается TRUE, если исключение переменной с именем name из данных сессии прошло удачно. session_unset Удаление всех переменных сессии void session_unset(void); Удаляет все данные нынешней сессии. session_ is_ registered Проверка принадлежности переменной к нынешней сессии bool session_is_registered (string name) Возвращает TRUE, если переменная с именем name принадлежит сессии. session_get_cookie_params Приобретение параметров cookie сессии array session_get_cookie_pararas (void); Возвращается массив, содержащий три элемента:
session_ set_ cookie_ params Установка параметров cookie сессии void session_set_cookie_params (int lifetime [, string path [, string domain]]). Параметры, которые устанавливаются этой функцией, будут делать только на время исполнения сценария, в остальных случаях будут применяться значения из параметров файла конфигурации php.ini. session_decode Декодирование данных сессии из строки boo! session_decode (string data) Эта функция применяется для извлечения данных сессии, если строка сериалпзированных переменных была сохранена вручную. session_encode Кодирование данных сессии в строку string session_encode(void) Возвращает строку, содержащую сериализированные данные нынешней сессии. tession_set_save_handler Установление пользовательских процедур работы с сессиями void session_set_save_handler (string open, string close, string Aead, string write, string destroy, string gc) Этой функцией дозволено установить функции, которые будут исполнять следующие действия: открытие сессии, закрытие, чтение и запись данных сессии, истребление устаревших данных, вычисление момента, когда следует удалять устаревшие данные. Имена соответствующих функций указываются в этом порядке, как доводы данной функции. Для того дабы дозволено было применять пользовательские функции, следует установить для параметра session.save_ handler в файле конфигурации значение user. Дозволено реализовать механизм сохранения данных сессий в базе данных. Дальнейший пример, демонстрирующий сохранение данных в файлах (приблизительно таким образом действует РНР), может быть лег- / ко преобразован для хранения данных в БД. <?Php session_cache_limiter Определение ограничения кэширования string session_cachejimiter ([string cachejimiter]) Когда посылаются заголовки HTTP, в них дозволено указать, разрешено ли кэширование полученных данных. В HTTP возможны следующие значения: nocache (по умолчанию), private (относительное лимитация кэширования) и public (неимение ограничений). При запуске сценария лимитация кэширования устанавливается согласно значению параметра конфигурации session.cache_limiter. Функция возвращает нынешнее лимитация кэширования, и если указан довод cachejli miter, то устанавливает новое (это нужно делать до запуска сессии). <?php Загрузка файлов на сервер способом HTTP POST PHP горазд осуществлять загрузку на сервер файлов, посланных браузерами, использующими эталон RFC1867 (таковыми являются Netscape Navigator 3 и старше, Microsoft Internet Explorer 3 с обновлением либо больше поздние браузеры Microsoft). Файлы могут быть как двоичными, так и текстовыми. При этом бывает благотворно г воспользоваться процедурой аутентификации и функциями файловой системы. Также РНР поддерживает загрузку способом PUT, используемую программами Netscape Composer и Amaya (см. ниже). Для загрузки файлов способом POST нужно передать браузеру следующую форму: «FORM ENCTYPE="multipart/form-data" Взамен значения признака ACTION «get.php» нужно указать имя PHP-сценария, тот, что будет принимать файл. В спрятанном поле MAX_FILE_SIZE указывается наивысший размер файла (в байтах), тот, что может быть послан, но он не может быть огромнее, чем определено в параметре конфигурации upload_max_filesize. При отображении данной формы браузер механически добавляет кнопку «Обзор...», при нажатии на которую возникает стандартное окно выбора файлов. Сценарий, тот, что получает файл, может применять всеобщий массив $HTTP_POST_FILES для приобретения информации о том, что за файл был загружен. Обыкновенно данный массив имеет следующую конструкцию: Array ( userfile — это имя поля формы, в которое вводилось имя передаваемого файла. (В форме может присутствовать несколько таких полей типа «file», если нужно передавать несколько файлов единовременно.) Соответственно массив будет содержать столько же подмассивов, сколько полей передачи файлов присутствовало в форме.
По умолчанию, если каталог не установлен параметром конфигурации upload_tmp_dir, загруженные файлы сохраняются в системном каталоге для временных файлов (определяется системной переменной окружения TMPDIR). Обыкновенно загруженные файлы перемещаются из временного каталога в какой-нибудь намеренно для этого предуготовленный, это может быть сделано с поддержкой функции move_ uploaded_file(). <?php При заключении сценария загруженный файл будет механически удален, если он не был перемещен либо переименован. Если вы хотите загружать несколько файлов единовременно, используйте синтаксис массивов в нулях формы загрузки аналогично дальнейшему: <input name="userfile[]" type="file"> Тогда конструкция массива $HTTP_POST_FILES будет иметь иную форму: Array ( В этом случае тип первого загруженного файла будет находиться в элементе $HTTP_POST_FILES["userfile"]["type"][0], а размер второго в $HnP_POST_FILES["userfile"]["size"][l]. Загрузка способом PUT PHP также поддерживает загрузку HTTP PUT, используемую такими устаревшими приложениями, как Netscape Composer. Данный способ работает гораздо проще, в теле заголовка запроса HTTP передается строка: PUT /path/filename html HTTP/1.1 Строка указывает, что сервер должен сберечь последующую часть запроса как файл под именем filename.html в каталоге web-сервера /path/. Едва ли такое решение является успешным — разрешать любому заказчику сберегать произвольные файлы на сервере. Следственно в конфигурации web-сервера следует указать, что запросы этого типа должен обрабатывать определенный сценарий. В сервере Apache для этого нужно добавить директиву Script в его файл конфигурации. Традиционно такая директива вносится в блок <Directory>, изредка — в блок <Virtualhost>. Скажем, в таком виде: Script PUT /put.php Эта директива указывает серверу, что все получаемые запросы типа PUT (соответствующие контексту, то есть адресованные определенному каталогу либо виртуальному хосту) обязаны передаваться сценарию put.php (расположенному в корневом каталоге web-сервера). Внутри файла put.php дозволено указать следующую строку: <?php copy Тогда все загружаемые файлы будут копироваться в указанную в запросе директорию. Нужно, безусловно, заблаговременно проводить ряд проверок на допустимость сходственной операции. Полученный файл сохраняется во временном файле, имя которого заносится в переменную SPHP_PUT_FILENAME. Адрес, по которому запрашивался файл, сохраняется в переменной $REQUEST_URI (для Apache). Так же как и для файлов POST, полученный файл удаляется по заключении, если он не был скопирован либо перемещен. escapeshellarg i Добавление кавычек в строку доводов команды ОС string escapeshellarg (string arg) Возвращается строку arg, в которую добавляются одинарные кавычки (вокру! самой строки и вокруг всякой одинарной кавычки), что дозволяет передавать доводы запуска командам операционной системы, если нужно передать одиночный параметр, содержащий пробелы либо другие символы разделители. Это бывает благотворно для систем Unix при применении функций exec(), system(). system('ls " .EscapeShel lArg($dir)) См. также: ехес(), popen(), system() и «оператор запуска внешних программ». escapeshellcmd Цитирование метасимволов командной строки string escapeshellcmd (string command) Функция возвращает строку command, в которую добавлены цитирующие слеши, это может быть использовано при передаче доводов командам операционной системы. Также это может быть использовано как средство, предотвращающее запуск произвольных команд пользователем (если им вводятся доводы запуска). $е - EscapeShellCmd($usennput). См. также: escapeshellarg(), exec(), popen(), system() и «оператор запуска внешних программ». exec Запуск внешней программы string exec (string command [, string array [, int return_var]]) Функция спрятано от пользователя запускает команду операционной системы (оболочки) command. Она возвращает последнюю строку, которую вывела команда command. Если нужно распечатать все, что вывела команда, используйте функцию PassThru(). Если указан довод array, то в нем будет возвращена вся строка, которая была выведена командой. Если в этом массиве теснее присутствуют элементы, то строки будут добавляться в его конец (для чистки массива дозволено применять функцию unset (). Если указан довод return_var, то в нем будет сохранен код заключения команды. <? $se = "dir C:\\". Если требуется запустить программу в фоновом режиме (на долгое время), то поток ее итога должен быть перенаправлен в файл (либо другой поток итога); напротив по истечении возможного времени исполнения сценария (ожидания заключения внешней программы) он будет принудительно закончен с оплошностью. См. также: system(), PassThru(), popen(), EscapeShellCmd() и «оператор запуска внешних программ». passthru Запуск внешней программы с итогом void passthru (string command [, int return_var]) Функция сходна с ЕхесО: она запускает команду операционной системы command и возвращает в переменной return_var код заключения соответствующей системной команды, но она также выводит все то, что выводится при запуске. Эта команда может применяться и в тех случаях, когда внешняя программа выводит двоичные данные; скажем, с поддержкой утилиты pbmplus дозволено непринужденно отослать браузеру рисунок (заблаговременно следует отослать заголовок «content-type: image/gif»). В различие от функций ехес() и system() она не возвращает никакого значения. См. также: ехес(), system(), popen(), EscapeShellCmd(), «оператор запуска внешних программ».
system Запуск внешней программы с итогом string system (string command [, int return_var]) Функция подобна PassThru(), но она возвращает последнюю строку, выведенную при запуске команды (либо FALSE при ошибке). Помимо того, позже этого запуска (если была включена буферизация итога) выводится содержимое буфера. См. также: ехес(), PassThru(), popent), EscapeShellCmd() и «оператор запуска внешних программ». Эти функции доступны только для Windows версий интерпретатора РНР1, От того что спецтехнология СОМ предуготовлена для реализации объектного интерфейса, то для работы с компонентами СОМ предпочтительнее применение объектного интерфейса, имеющегося в РНР (взамен непосредственного использования функций). СОМ объект дозволено сотворить, вызвав конструктор СОМ с оператором new. $xcl = new COM("fxcel.sheet"); Если нужно сотворить удаленный компонент (DCOM), то во втором дополнительном доводе дозволено указать адрес сервера, на котором он должен создаваться (для этого должен быть разрешен параметр конфигурации com.al"low_dcom = TRUE). Доступ к свойствам и способам компонента дозволено осуществлять гак: $xcl->Applicat"ion->Visible = 1; com_ load Создание новой ссылки на компонент СОМ string com_load (string module name [, string server name]) Создает новейший компонент COM (если он не был сделан ранее) и возвращает ссылку на него. При ошибке возвращает FALSE. com_invoke Вызов способа объекта СОМ mixed com_invoke (resource com_object, string functionjiame [, mixed function parameters. ...]) При необходимости параметры вызова способа functionjiame передаются в третьем и последующих доводах. Функция возвращает значение, возвращаемое способом, либо FALSE — в случае ошибки. com_propget Синоним функции comjjet mixed com_propget (resource com_object, string property) com_get Приобретение значения свойства компонента COM mixed com_get (resource com_object, string property) Возвращает значение свойства property обьекта com_object либо FALSE — в случае ошибки. com_propput Синоним функции com_set void com_propput (resource com_object, string property, mixed value) com_propset Синоним функции com_set void com_propset (resource com_object, string property, mixed value) com_set Присвоение значения свойству компонента COM void com_set (resource com_object, string property, mixed value) Присваивает значение value свойству property объекта com_object. Возвращает TRUE, если операция прошла удачно, либо FALSE в случае ошибки. Данная группа функций разрешает трудиться с реализацией интерфейса POSIX.1, соответствующей спецификации IEEE 1003.1. Потому что разработка этого модуля еще не закончена, документация по многим функциям находится в стадии разработки. posix_kill Посылка процессу сигнала заключения boo! posixjdll (int pid, int sig) Возвращает TRUE при удачной посылке сигнала sig процессу с идентификатором pid либо FALSE при ошибке. См. также раздел kill(2) справочной системы man по системе POSIX касательно негативных значений идентификаторов процессов и особых значений pid 0. pjd -In номера сигнала 0. posix_getpid Приобретение идентификатора нынешнего процесса int posix_getpid (void ) posix_getppid Приобретение идентификатора родительского процесса int posix_getppid (void ) posix_getuid Приобретение ID реального пользователя нынешнего процесса int posix_getuid (void ) См. также posix_getpwuid().
posix_geteuid Приобретение ID результативного пользователя нынешнего процесса int posix_geteuid (void ) См. также posix_getpwuid(). posix_getgid Приобретение ID группы реального пользователя нынешнего процесса int posix_getgid (void ) См. также posix_getgrgid(). posix_getegid Приобретение ID группы результативного пользователя нынешнего процесса int posix_getegid (void ) См. также posix_getgrgid(). posix_setuid Установка ID реального пользователя нынешнего процесса bool posix_setuid (int uid) Для выполнения этой функции нужно иметь соответствующие привилегии (традиционно root). Возвращается TRUE либо FALSE — при ошибке. См. также posix_setgid(). posix_setgid Установка ID результативного пользователя нынешнего процесса bool posix_setgid (int gid) Для выполнения этой функции нужно иметь соответствующие привилегии (обыкновенно root). Возвращается TRUE либо FALSE — при ошибке. Подметьте, традиционно сперва вызывается posix_setgid(), а после этого posTX_setuid(). posi_ getgroups Приобретение комплекта группы нынешнего процесса array posix_getgroups (void ) Возвращает массив, оглавлении целочисленные групповые идентификаторы нынешнего процесса. См. также posix_getgrgid(). posix_getlogin Приобретение имени login string posix_get"login (void ) Возвращает имя (login), от которого был запущен нынешний процесс. См. также posix_getpwnam(). posix_getpgrp Приобретение группового идентификатора нынешнего процесса int posix_getpgrp (void ) См. также документацию POSIX.1 и раздел getpgrp(2) справочной системы man. Posix_setsid Предназначение нынешнего процесса лидером сессии int posix_setsid (void ) Возвращает идентификатор сессии. См. также документацию POSIX. 1 и раздел setsid(2) справочной сис-тшы man. posix _setpgid Установка идентификатора группы процесса int posix_setpgid (int pid, int pgid) Присоединяет процесс pid к группе процессов pgid. При ошибке возвращает FALSE. См. также документацию POSIX.1 и раздел sctsid(2) справочной системы man. posix_getpgid Приобретение идентификатора группы процесса int posix_getpgid (int pid) Это не функция POSIX, но она распространена в системах BSD и System V. Если она не поддерживается системой, то РНР неизменно будет возвращать FALSE. posix_getsid Получение идентификатора sid процесса int posix_getsid (int pid) Если pid равен 0, то возвращается идентификатор sid нынешнего процесса. Это не функция POSIX, но она распространена в системах BSD и System V. Если она не поддерживается системой, то РНР неизменно будет возвращать FALSE. posix_uname Приобретение информации о системе array posix_uname (void ) Возвращает массив, содержащий следующие элементы:
domainname — это растяжение GNU, не являющееся частью POSIX.1, следственно данный элемент доступен только на системах GNU либо при применении библиотеки GNU libc. Posix предупреждает, что формат значений может гораздо различаться в различных системах. posix_times Приобретение времени процесса array posix_times (void ) Возвращает ассоциативный массив строк, содержащих информацию об применении источников CPU нынешним процессом:
posix_stermid Приобретение имени терминала ; string posix_ctermid (void ) posix_ ttyname Определение устройства терминала string posix_ttyname (int fd) posix_ isatty Проверка, является ли дескриптор файла терминалом bool posix_isatty (int fd) posix_ getcwd Выяснение пути нынешнего каталога string posix_getcwd (void ) posix_mkfifo Создание особого файла fifo (named pipe) bool posix_getcwd (string pathname, int mode) posix_getgrnam Приобретение информации о группе по имени array posix_getgrnam (string name) posix_getgrgid Приобретение информации о группе по идентификатору array posix_getgrgid (int gid) posix_getpwnam Приобретение информации о пользователе по имени array posix_getpwnam (string username) Возвращает ассоциативный массив, содержащий информацию о пользователе, имеющем строковое имя, указанное в доводе username. Возвращаемый массив содержит следующие элементы:
posix_getpwuid Приобретение информации о пользователе по идентификатору array posix_getpwuid (int uid) Возвращает ассоциативный массив, содержащий информацию о пользователе, числовой идентификатор, указанный в доводе uid. Конструкция возвращаемого массива аналогична таковому в функции posix_getpwnam(). posix_getrlimit Приобретение массива информации об ограничениях источников системы array posix_getrlimit (void ) apache_lookup_uri Запрос URI и приобретение о нем информации class apache_lookup_uri (string filename) Исполняет особый запрос URI, указанный в доводе filename. Функция разрешает узнать, как бы поступил сервер, получив соответствующий запрос. Возвращается объект, имеющий следующие свойства:
Функция работает, только если РНР установлен как модуль Apache. <? var_dump(apache_lookup_un("/")); ?> Выводит следующую информацию: object(stdClass)(16) { ["status"]=> apgche_note Определение примечания запроса string apachejiote (string notejiame [, string note_value]) функция получаст и (если указан довод note_value) устанавливает JIOBOC значение из внутренней таблицы заметок Apache. getgllheaders Обработка заголовков запроса HTTP аггаy getallheaders (void) Возвращает заголовки, посланные совместно с нынешним запросом. Подметьте: многие из переменных, которые дозволено получить данным методом, могут быть получены как типовые переменные окружения CG1. См. также phpinfo(). var (jump(getallheaders ()): Вьведет приблизительно следующее: аггау(б) { В текущее время функция работает, только если РНР установлен как модуль Apache. virtual Выполнение подзапроса Apache int virtual (string filename) Выпо.''"яет директиву SSI файлов <! -#include virtual ...-->, обрабатываемую модулем Apache modjndude. Это благотворно для включения в нынешний файл CGI сценариев либо файлов .shtml. Если нужно включить файл РНР, используйте директивы include() либо require(). ascii2ebcdic Реформирование строки ASCII в EBCDIC int ascin2ebcdic (string ascii_str) Функция доступна только в системах, поддерживающих EBCDIC (OS/390, BS2000). Возвращает строку ascii_str, конвертированную в двоичный формат EBCDIC. См. также обратную функцию ebcdic2ascii(). ebcdic2ascii Реформирование строки EBCDIC в ASCII int ebcdic2ascii (string ebcdic_str) Функция доступна только в системах, поддерживающих EBCDIC (OS/390, BS2000). См. также обратную функцию ascii2ebcdic(). Клиентский модуль Satellite CORBA Данный модуль применяется для работы с удаленными объектами архитектуры CORBA. Добавьте в файл php.ini строку idl_directory=, в которой указан путь к файлам изложения интерфейсов IDL. OrbitObject Класс доступа к объекту CORBA new OrbitObject (string ior) В доводе ior указывается строка идентификатора удаленного объекта IOR (Interoperable Object Reference), обыкновенно включающая его имя и адрес. # Примитивный файл изложения интерфейса OrbitEnum Класс перечисления CORBA new OrbitEnum (string id) В доводе id указывается строка имени «перечисления», которая может представлять примитивное его имя (скажем, "МуЕпит") пли быть полным идентификатором депозитария (скажем, "IDL:MyEnum:1.0"). # Легкой файл изложения интерфейса OrbitStruct Класс конструкции CORBA new OrbitStruct (string id) В доводе id указывается строка имени конструкции, которая может представлять примитивное ее имя (скажем, "MyStnict") либо быть полным идентификатором депозитария (скажем, "IDL:MyStruct:1.0"). # Легкой файл изложения интерфейса satellite_caught_exception Проверка исключения прошлой функции bool satellite_caught_exception () Возвращает TRUE, если при выполнении предыдущей функции в никло исключение. # Легкой файл изложения интерфейса satellite_exception_id Приобретение идентификатора депозитария последнего исключения string satellite_exception_id () Возвращает строку идентификатора (скажем, "IDL:MyException:1.0".) См. также sateTlite_caught exception(). satellite_exception_value Приобретение конструкции последнего исключения OrbitStruct satellite_exception_value() См. также sateTlite_cauglit_exception(). Данный комплект функций разрешает РНР создавать, удалять, читать и записывать данные в разделяемые блоки памяти UNIX. С подмогой разделяемой памяти дозволено осуществлять всеобщий обмен данными между приложениями. В системах Windows эти функции не работают, потому что там не поддерживается разделяемая память1. Для применения этих функций нужно скомпилировать РНР с параметром — enable-shmop. В версиях РПР 4.0.3 и ниже эти функции имели префикс shm_. <?php shmop_open Создание либо открытие блока разделяемой памяти int shmop_open (int key, string flags, int mode, int size) В доводе key указывается системный идентификатор блока; во втором доводе, flags, указывается вид операции:
Если блок создастся, то в третьем и четвертом доводах передаются соответственно: права доступа к нему (традиционно в восьмеричном представлении) и размер в байтах. Если же блок открывается, то в третьем и четвертом доводах следует передавать значение 0. В случае фурора функция возвращает дескриптор блока, используе- | мый в последующих операциях с ним. shmop_size Приобретение размера блока разделяемой памяти int shmop_size (int shmid) Возвращает размер блока, указанного дескриптором shmid. shmop_read Чтение данных из блока разделяемой памяти string shmop_read (int shmid, int start, nnt count) Возвращает прочитанную строку данных размером count байтов, начиная со смещения start, из блока, указанного дескриптором shmid. shmop_write Запись данных в блок разделяемой памяти int shmop_write (int shmid, string data, int offset) Записывает строку данных data в блок, указанный дескриптором shmid, по относительному адресу (смещению от начала блока) offset. shmop_delete Удаление блока разделяемой памяти int shmop_delete (int shmid) В доводе shmid указывается дескриптор блока. В случае триумфа возвращает 1, а при ошибке — 0. shmop_close Закрытие блока разделяемой памяти int shmop_close (int shmid) В доводе shrald указывается дескриптор блока. Семафоры Данная группа функций разрешает применять семафоры и разделяемую память (System V). Семафоры могут применяться для реализации доступа к системным источникам в эксклюзивном режиме (либо ограничивать число процессов, единовременно использующих один источник). Сами по себе семафоры не охраняют от одновременного применения источника, а применяются для синхронизации. Операционные системы Unix имеют следующие ограничения:
Эти функции не работают в Windows. sem_get Приобретение дескриптора семафора int sem_get (int key [, int max_acquire [, int perm]]) Возвращает дескриптор семафора с идентификатором key либо FALSE — при ошибке. При отсутствии такого семафора он создается, и в доводах тах_ acquire и perm дозволено задать: число процессов, которые могут заблокировать данный семафор (по умолчанию 1 — «никакой процесс, помимо данного»), и нрава доступа к нему (по умолчанию 0666). См. также: sem_acquire() и sem_release(). sem_acquire Блокировка семафора int sem_acquire (int senMdentifier) Возвращает TRUE либо FALSE — при ошибке. Число процессов, которые единовременно могут заблокировать семафор, указывается при его создании (доводом max_acquire), и если оно теснее достигнуто, попытки блокировки отвергаются. Позже заключения процесса, если он не освобождает семафор, выдается предупреждение. См. также: sera_get() и sem_release(). sem_release Освобождение семафора int sem_release (int sem_identifier) Освобождает семафор, заблокированный ранее данным процессом. Возвращает TRUE либо FALSE — при ошибке (с выдачей предупреждения). Позже освобождения семафора его вновь дозволено заблокировать функцией sem_acqihre(). См. также: sera get() и sero_acquire(). shm_attach Создание либо открытие блока разделяемой памяти int shm_attach (int key [, int memsize [, int perm]]) В доводе key указывается системный идентификатор блока. В случае фурора функция возвращает дескриптор блока разделяемой памяти System V, применяемый в последующих операциях с ним. Если такого блока не существует, то он создается, и тогда в доводе memsize дозволено указать его размер в байтах. (Если значение не указывается, то создается блок размером 10 000 байт, размер по умолча-' нию дозволено также задать, добавив в файл конфигурации параметр sysvshm.initjnem=.) В доводе perm дозволено указать права доступа (по умолчанию 0666). Повторный вызов функции с тем же значением key сделает новейший дескриптор на тот же блок (доводы memsize и perm будут игнорироваться). shm_detach Закрытие блока разделяемой памяти int shm_detach (int shm_identifier) Данные блока shmjdentifier при закрытии сохраняются. shm_remove Удаление блока разделяемой памяти int shm_remove (int shmjiclentifier) Все данные блока shm_identifier уничтожаются. shm_put_var Добавление либо обновление переменной в разделяемой памяти int shm_put_var (int shm_identifier, int variable_key, mixed variable) Присваивает значение PHP-переменной variable переменной в блоке разделяемой памяти (с дескриптором shm_identifier), имеющей идентификатор variable_key. Поддерживаются все типы переменных (double, int, string, array). shm_get_var Приобретение переменной из разделяемой памяти mixed shm_get_var (int id, int variable_key) Возвращает значение переменной variable_key. shm_remove_var Удаление переменной из разделяемой памяти int shm_remove_var (int id, int variable_key) Удаляет переменную variable_key и освобождает память. |