| Управляющие функции
В комплекте поставки этот файл называется 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 и по большей части использует те же коды. Строка формата состоит из кодов двух видов: кода типа элементов данных и числителя (длины данных или количества элементов данных данного типа), указанного после кода типа. Числитель может быть числом или значением «*» (тогда длина определяется автоматически). Если числитель не указывается, он считается равным 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, имеющими установленный третий параметр. 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 и освобождает память. |