Учебник PHP

         

sem_remove

(PHP 4 >= 4.1.0)

sem_remove - удаляет семафор.

Описание

bool sem_remove (int sem_identifier)

Возвращает TRUE при успехе, FALSE при ошибке.

sem_remove() удаляет семафор sem_identifier, если он создан функцией sem_get(), иначе генерируется предупреждение.

После удаления семафора он больше не доступен.

См. также sem_get(), sem_release() и sem_acquire().

Примечание: эта функция не работает на системах Windows. Она была введена в PHP 4.1.0.

serialize

(PHP 3>= 3.0.5, PHP 4)

serialize - генерирует хранимое представление значения.

Описание

string serialize (mixed value)

serialize() возвращает строку с байтово-поточным представлением значения value, которое может храниться где угодно.

Это используется для хранения или передачи PHP-значений повсюду без потери их типа и структуры.

Чтобы вновь сделать сериализованную строку PHP-значением, используйте функцию unserialize(). serialize() обрабатывает все типы, кроме типа resource. Вы можете serialize() даже массивы, которые содержат ссылки на самих себя. Ссылки внутри массива/объекта, который вы serialize(), также будут сохранены.

Примечание: в PHP 3 свойства объекта сериализуются, но методы теряются. В PHP 4 это ограничение отсутствует, и сохраняются как свойства, так и методы. См. раздел Сериализация объектов главы Классы и объекты.

sesam_affected_rows

(только PHP 3 CVS)

sesam_affected_rows - получает количество рядов, задействованных в непосредственном запросе.

Описание

int sesam_affected_rows (string result_id)



result_id это правильный идентификатор результата, возвращённый функцией sesam_query().

Возвращает количество рядов, задействованных в запросе, ассоциированном с result_id.

sesam_affected_rows() может возвращать только используемые значения, когда работает в сочетании с "непосредственными/immediate" SQL-операторами (операции обновления типа INSERT, UPDATE и DELETE), поскольку SESAM не предоставляет никакой информации об "affected rows" для запросов "select type". Возвращается количество задействованных рядов.

См. также sesam_query() и sesam_execimm().

sesam_commit

(только PHP 3 CVS)

sesam_commit - подтверждает обновления БД SESAM.

Описание

bool sesam_commit (void)

Возвращает TRUE при успехе, FALSE при ошибках.

sesam_commit() подтверждает любые обновления БД.

Заметьте, что отсутствует возможность "auto-commit/автоподтверждения", как в других БД, поскольку это может привести к случайной потере данных. Неподтверждённые данные в конце работы текущего скрипта (или при вызове sesam_disconnect() ) будут отброшены неявным вызовом sesam_rollback().

См. также sesam_rollback().

Пример 1. Подтверждение обновления/update БД SESAM

sesam_connect

(только PHP 3 CVS)

sesam_connect - открывает соединение с базой данных SESAM.

Описание

bool sesam_connect (string catalog, string schema, string user)

Возвращает TRUE, если соединение с БД SESAM установлено, FALSE при ошибке.

sesam_connect() устанавливает соединение с задачей обработчика БД SESAM. Соединение всегда "persistent/постоянное" в том смысле, что только самый первый вызов загрузит драйвер из сконфигурированной библиотеки SESAM OML PLAM. Последующие вызовы используют тот же драйвер и сразу используют заданный каталог, схему и пользователя.

При создании БД имя "catalog" специфицируется в директиве конфигурации SESAM
//ADD-SQL-DATABASE-CATALOG-LIST ENTRY-1 = *CATALOG(CATALOG-NAME = catalogname,...)

Схема ссылается на "schema" желаемую схему БД (см. руководство SESAM handbook).

Аргумент "user" ссылается на одного из пользователей, которым разрешён доступ к этой комбинации "catalog" / "schema". Заметьте, что "user" полностью независим от id'ов системных пользователей и от HTTP-защиты user/password. Он появляется только в конфигурации SESAM.

См. также sesam_disconnect().

sesam_diagnostic

(только PHP 3 CVS)

sesam_diagnostic - возвращает информацию статуса последнего вызова SESAM.

Описание

array sesam_diagnostic (void)

Возвращает ассоциативный массив статуса и return-кодов последнего SQL query/statement/command. Элементами массива являются:

Таблица 1. Информация статуса, возвращаемая функцией sesam_diagnostic()
элементсодержимое$array["sqlstate"] SQL return-код из 5 цифр (см. в учебнике SESAM описание возможных значений SQLSTATE) $array["rowcount"]количество рядов, задействованных в последней операции update/insert/delete (устанавливается только после "immediate" операторов)$array["errmsg"] "человекочитабельная" строка сообщения об ошибке (устанавливается только после ошибок) $array["errcol"]Номер столбца с предыдущей ошибкой (с базой 0; или -1, если undefined. Устанавливается только после ошибок)$array["errlin"] номер строчки с предыдущей ошибкой (с базой 0; или -1, еслиundefined. Устанавливается только после ошибок)

В следующем примере синтаксическая ошибка (E SEW42AE ILLEGAL CHARACTER) выводится путём включения бесконечного SQL-оператора и указания на местонахождение ошибки:

sesam_disconnect

(только PHP 3 CVS)

sesam_disconnect - отсоединяет от SESAM.

Описание

bool sesam_disconnect (void)

Возвращает всегда TRUE.

sesam_disconnect() закрывает логическую ссылку на БД SESAM (без реального отсоединения и выгрузки драйвера).

Заметьте, что в этом обычно нет необходимости, так как открытое соединение автоматически закрывается в конце выполнения скрипта. Неподтверждённые данные отбрасываются, поскольку неявно выполняется sesam_rollback().

sesam_disconnect() не закрывает постоянные ссылки, она только делает неработающей текущую определённую триаду "catalog", "schema" и "user", так что любая sesam-функция, вызванная после sesam_disconnect(), потерпит неудачу.

См. также sesam_connect().

sesam_errormsg

(только PHP 3 CVS)

sesam_errormsg - возвращает сообщение об ошибке в последнем вызове SESAM.

Описание

string sesam_errormsg (void)

Возвращает сообщение об ошибке SESAM, ассоциированное с самой последней ошибкой SESAM.

sesam_execimm

(только PHP 3 CVS)

sesam_execimm - выполняет "immediate" SQL-оператор.

Описание

string sesam_execimm (string query)

Возвращает SESAM "result identifier/результирующий идентификатор" при успехе, FALSE при ошибке.

sesam_execimm() выполняет "immediate/непосредственный" оператор (т.е. оператор вроде UPDATE, INSERT или DELETE, который не возвращает результат и не имеет переменных INPUT или OUTPUT). "select type" запросы не могут использоваться с sesam_execimm(). Устанавливает значение affected_rows для запрашивания функцией sesam_affected_rows().

Обратите внимание, что sesam_query() может обрабатывать как "immediate", так и "select-type" запросы. Используйте sesam_execimm(), только если вы знаете заранее, оператор какого типа будет выполняться. Попытка использовать запросы типа SELECT с sesam_execimm() возвратят $err["sqlstate"] == "42SBW".

Возвращаемый "result identifier" не может использоваться запрашивания чего-либо, кроме sesam_affected_rows(); он возвращается только для симметрии с sesam_query().

sesam_fetch_array

(только PHP 3 CVS)

sesam_fetch_array - извлекает один ряд как ассоциативный массив.

Описание

array sesam_fetch_array (string result_id [, int whence [, int offset]])

Возвращает массив, соответствующий извлечённому ряду, или FALSE, если рядов больше нет.

sesam_fetch_array() это альтернативная версия sesam_fetch_row(). Вместо хранения данных в числовых индексах результирующего массива, она хранит их в ассоциативных индексах, используя в качестве ключей имена полей.

result_id это правильный результирующий идентификатор, возвращаемый функцией sesam_query() (только запросы типа select!).

О правильных значениях необязательных параметров whence и offset см. sesam_fetch_row().

sesam_fetch_array() извлекает один ряд данных из результата, ассоциированного со специфицированным результирующим идентификатором. Ряд возвращается как ассоциативный массив. Каждый столбец результата хранится с ассоциативным индексом, равным имени столбца (поля). Имена столбцов конвертируются в нижний регистр.

Столбцы без имени поля (например, результаты арифметических операций) и пустые поля не хранятся в этом массиве. Также, если два или более столбца результата имеют одинаковые имена столбцов, последний столбец имеет преимущество. В этой ситуации вызывайте sesam_fetch_row() или создайте псевдоним для столбца.

sesam_fetch_result

(только PHP 3 CVS)

sesam_fetch_result - возвращает все части результата запроса.

Описание

mixed sesam_fetch_result (string result_id [, int max_rows])

Возвращает смешанный массив с вхождениями результата запроса, по выбору ограниченный максимумом рядов в параметре max_rows. Обратите внимание, что индексы рядов и столбцов имеют базу 0.

Таблица 1. Смешанный результирующий набор, возвращаемый функцией sesam_fetch_result()
элемент массивасодержимоеint $arr["count"]количество столбцов в результирующем наборе (или нуль, если это был "immediate" запрос)int $arr["rows"]количество столбцов в результирующем наборе (от нуля до max_rows)bool $arr["truncated"]TRUE, если количество рядов было не менее max_rows, иначе FALSE. Обратите внимание, что даже если этот элемент TRUE, следующий вызов sesam_fetch_result() может вернуть ноль рядов, поскольку больше нет результирующих вхождений. mixed $arr[col][row]результирующие данные для всех полей row(row) и column(col), (где integer индекс row находится между 0 и $arr["rows"]-1, а col - между 0 и $arr["count"]-1). Поля могут быть пустыми, поэтому вы обязаны проверять существование поля с помощью РНР-функции isset(). Тип возвращаемых полей зависит от соответствующего SQL-типа, объявленного для данного столбца (см. в разделе SESAM. Обзор. о применяемых конвертациях). SESAM "multiple fields" являются "inlined" и рассматриваются как последовательность столбцов.

Заметьте, что количество памяти, используемой большим запросом, может быть гигантским. Используйте параметр max_rows для ограничения максимального количества возвращаемых рядов, если только вы не уверены, что ваш результат не будет использовать всю доступную память.

См. также sesam_fetch_row() и sesam_field_array() о проверке на наличие "multiple fields". См. в описании функции sesam_query() полный пример использования sesam_fetch_result().

sesam_fetch_row

(только PHP 3 CVS)

sesam_fetch_row - извлекает один ряд как массив.

Описание

array sesam_fetch_row (string result_id [, int whence [, int offset]])

Возвращает массив, соответствующий извлечённому ряду, или FALSE, если рядов больше нет.

Количество столбцов в результирующем наборе возвращается в элементе ассоциативного массива $array["count"]. Поскольку результирующие столбцы могут быть пустыми, функция count() не может использоваться с результирующим рядом, возвращённым функцией sesam_fetch_row().

result_id это правильный result id, возвращённый функцией sesam_query() (только запросы select!).

whence это необязательный параметр для операции извлечения в "scrollable/прокручиваемых" курсорах, который может иметь в качестве значения одну из предопределённых констант:

Таблица 1. Правильные значения параметра "whence"
ЗначениеКонстантаСмысл0SESAM_SEEK_NEXT читать последовательно (после извлечения по умолчанию устанавливается SESAM_SEEK_NEXT) 1SESAM_SEEK_PRIORчитать последовательно в обратном направлении (после извлечения по умолчанию устанавливается SESAM_SEEK_PRIOR)2SESAM_SEEK_FIRST вернуться к первому ряду (после извлечения по умолчанию устанавливается SESAM_SEEK_NEXT) 3SESAM_SEEK_LASTнайти последний ряд (после извлечения по умолчанию устанавливается SESAM_SEEK_PRIOR)4SESAM_SEEK_ABSOLUTE найти абсолютный номер ряда, заданного как offset (С базой 0. После извлечения по умолчанию устанавливается SESAM_SEEK_ABSOLUTE, а внутреннее значение смещения увеличивается на 1)5 SESAM_SEEK_RELATIVEискать относительно текущей позиции курсора, где offset может быть положительным или отрицательным значением смещения.

Этот параметр верен только для "scrollable" курсоров.

При использовании "scrollable" курсоров, курсор можно свободно позиционировать в результирующем наборе. Если параметр whence опущен, используются глобальные значения по умолчанию типа прокрутки (инициализируется в SESAM_SEEK_NEXT, а устанавливается функцией sesam_seek_row()). Если whence предоставлен, его значение замещает глобальное значение по умолчанию.

offset это необязательный параметр, который вычисляется (и требуется), только если whence это SESAM_SEEK_RELATIVE или SESAM_SEEK_ABSOLUTE. Этот параметр верен только для "scrollable" курсоров.

sesam_fetch_row() извлекает один ряд данных из результата, ассоциированного со специфицированным идентификатором результата. Ряд возвращается как массив (индексированный значениями в диапазоне от 0 до $array["count"]-1). Поля могут быть пустыми, поэтому вы обязаны проверять существование поля РНР-функцией isset(). Тип возвращаемых полей зависит от соответствующего SQL-типа, объявленного для столбца (см. в разделе SESAM. Обзор. о применяемых соглашениях). SESAM "multiple fields/множественные поля" являются "inlined/инлайновыми" и рассматриваются как последовательность столбцов.

Последующие вызовы sesam_fetch_row() должны возвращать следующий ряд (или предыдущий, или n'ный следующий/предыдущий, в зависимости от атрибутов прокрутки) результирующего набора или FALSE, если рядов больше нет.

sesam_field_array

(только PHP 3 CVS)

sesam_field_array - возвращает метаинформацию об отдельных столбцах результата.

Описание

array sesam_field_array (string result_id)

result_id это правильный идентификатор результата, возвращённый функцией sesam_query().

Возвращает смешанный ассоциативно-индексированный массив meta-информации (имя столбца, тип, точность, ...) об отдельных столбцах результата выполнения запроса, ассоциированного с result_id.

Таблица 1. Смешанный результирующий набор, возвращаемый функцией sesam_field_array()
Элемент МассиваСодержимоеint $arr["count"] общее количество столбцов в результирующем наборе (или нуль, если это был "immediate" запрос/query). SESAM "multiple fields" являются "inlined" и рассматриваются как соответствующее количество столбцов.string $arr[col]["name"] имя столбца column(col), где col в диапазоне от 0 до $arr["count"]-1. Возвращаемое значение может быть пустой строкой (для динамически обсчитываемых столбцов). SESAM "multiple fields" являются "inlined" и рассматриваются как соответствующее количество столбцов, каждый с тем же именем столбца.string $arr[col]["count"]атрибут "count" описывает фактор повторения, когда столбец объявлен как "multiple field". Обычно атрибут "count" равен 1. Первый столбец "multiple field"-столбца, однако, содержит количество повторений (второй и последующий столбцы "multiple field" содержат атрибут "count", равный 1). Это можно использовать для определения "multiple fields" в результирующем наборе. См. пример в описании sesam_query() - использование атрибута "count". string $arr[col]["type"]тип php-переменной данных для column(col), где col в диапазоне от 0 до $arr["count"]-1. Возвращается одно из следующих значений:

integer

float

string

в зависимости от SQL-типа результата. SESAM "multiple fields" являются "inlined" и рассматриваются как соответствующее количество столбцов, каждый с тем же РНР-типом.string $arr[col]["sqltype"]SQL-тип переменной данных столбца для column(col), где col в диапазоне от 0 до $arr["count"]-1. Возвращается одно из следующих значений:

"CHARACTER"

"VARCHAR"

"NUMERIC"

"DECIMAL"

"INTEGER"

"SMALLINT"

"FLOAT"

"REAL"

"DOUBLE"

"DATE"

"TIME"

"TIMESTAMP"

описывая SQL-тип результата. SESAM "multiple fields" являются "inlined" и рассматриваются как соответствующее количество столбцов, каждый того же SQL-типа.string $arr[col]["length"]SQL-атрибут "length" SQL-переменной в column(col), где col в диапазоне от 0 до $arr["count"]-1. Атрибут "length" используется с SQL-типами "CHARACTER" и "VARCHAR" для специфицирования (максимальной) длины строковой переменной. SESAM "multiple fields" являются "inlined" и рассматриваются как соответствующее количество столбцов, каждый с тем же атрибутом length.string $arr[col]["precision"]атрибут "precision" SQL-переменной в column(col), где col в диапазоне от 0 до $arr["count"]-1. Атрибут "precision" используется с числовыми и время-дата типами. SESAM "multiple fields" являются "inlined" и рассматриваются как соответствующее количество столбцов, каждый с тем же атрибутом precision.string $arr[col]["scale"]атрибут "scale" SQL-переменной в column(col), где col в диапазоне от 0 до $arr["count"]-1. Атрибут "scale" используется с числовыми типами данных. SESAM "multiple fields" являются "inlined" и рассматриваются как соответствующее количество столбцов, каждый с тем же атрибутом scale.

См. в sesam_query() пример использования sesam_field_array().

sesam_field_name

(только PHP 3 CVS)

sesam_field_name - возвращает имя одного столбца из результирующего набора.

Описание

int sesam_field_name (string result_id, int index)

Возвращает имя поля (т.е. имя столбца) в результирующем наборе, FALSE при ошибке.

Для "immediate"-запросов или динамических столбцов возвращается пустая строка.

Примечание: индекс столбцов имеет базу 0, а не 1, как в SESAM.

См. также sesam_field_array(). Она предоставляет более простой интерфейс для доступа к именам и типам столбцов и позволяет определять "multiple fields".

sesam_free_result

(только PHP 3 CVS)

sesam_free_result - освобождает ресурсы запроса/query.

Описание

int sesam_free_result (string result_id)

Освобождает ресурсы запроса, ассоциированного с result_id. Возвращает FALSE при ошибке.

sesam_num_fields

(только PHP 3 CVS)

sesam_num_fields - возвращает количество полей/столбцов результирующего набора.

Описание

int sesam_num_fields (string result_id)

После вызова sesam_query() с запросом "select-типа" эта функция выдаёт вам количество столбцов в результате. Возвращает integer - общее количество столбцов (т.е. полей) в текущем результирующем наборе result_id - или FALSE при ошибке.

Для "immediate"-операторов возвращается значение 0. SESAM "multiple field" столбцы обсчитываются как их соответствующие размеры, т.е. "multiple field" из 3 столбцов высчитывается как три столбца.

См. также в sesam_query() и sesam_field_array() способ различения "multiple field"-столбцов и обычных столбцов.

sesam_query

(только PHP 3 CVS)

sesam_query - выполняет SESAM SQL-запрос и готовит результат.

Описание

string sesam_query (string query [, bool scrollable])

Возвращает  SESAM "result identifier" при успехе, FALSE при ошибке.

Ресурс "result_id" используется другими функциями для запрашивания результатов выполнения query/запроса.

sesam_query() отправляет запрос текущей активной БД на сервере. Могут выполняться как "immediate" SQL-операторы, так и "select type" запросы. Если выполняется "immediate" оператор, то курсор не выделяется, а последующий вызов sesam_fetch_row() или sesam_fetch_result() возвращает пустой результат (нулевые столбцы, указывающие end-of-result). Для "select type" операторов выделяются дескриптор результата и (прокручиваемый или последовательный, в зависимости от необязательного булева параметра scrollable) курсор. Если scrollable отсутствует, курсор будет последовательным/sequential.

При использовании "scrollable" курсоров курсор может свободно позиционироваться в результирующем наборе. Для каждого "scrollable" запроса имеются глобальные значения по умолчанию для прокручиваемого/scrolling типа (инициализируется: SESAM_SEEK_NEXT) и смещение прокрутки, которое может быть установлено однократно функцией sesam_seek_row(), либо каждый раз при извлечении ряда функцией sesam_fetch_row().

Для "immediate" операторов количество задействованных рядов сохраняется для запрашивания функцией sesam_affected_rows().

См. также sesam_fetch_row() и sesam_fetch_result().

sesam_rollback

(только PHP 3 CVS)

sesam_rollback - отбрасывает любые запущенные обновления БД SESAM.

Описание

bool sesam_rollback (void)

Возвращает TRUE при успехе, FALSE при ошибке.

sesam_rollback() отбрасывает все запущенные обновления БД. Влияет также на результирующие курсоры и результирующие дескрипторы.

В конце каждого скрипта, как часть функции sesam_disconnect(), sesam_rollback() выполняется неявно, отменяя любые начатые изменения БД.

См. также sesam_commit().

Пример 1. Отмена обновления SESAM-БД
<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
if (sesam_execimm ("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)")
&& sesam_execimm ("INSERT INTO othertable VALUES (*, 'Another Test', 1)"))
sesam_commit();
else
sesam_rollback();
}
?>

sesam_seek_row

(только PHP 3 CVS)

sesam_seek_row - устанавливает режим прокручиваемого курсора для последовательных извлечений.

Описание

bool sesam_seek_row (string result_id, int whence [, int offset])

result_id это правильный result id (только запросы select type, и только если "scrollable" курсор был запрошен при вызове sesam_query()).

whence устанавливает глобальное значение по умолчанию для типа прокрутки; специфицирует тип прокрутки для использования в последовательных операциях извлечения в "scrollable" курсорах; может иметь значение - следующие предопределённые константы:

Таблица 1. Правильные значения параметра "whence"
ЗначениеКонстантаСмысл0SESAM_SEEK_NEXT читать последовательно1SESAM_SEEK_PRIOR читать последовательно в обратном направлении2SESAM_SEEK_FIRST извлечь первый ряд (после извлечения по умолчанию устанавливается SESAM_SEEK_NEXT) 3SESAM_SEEK_LASTизвлечь последний ряд (после извлечения по умолчанию устанавливается SESAM_SEEK_PRIOR)4SESAM_SEEK_ABSOLUTE извлечь ряд с абсолютным номером offset (С базой 0. После извлечения по умолчанию устанавливается SESAM_SEEK_ABSOLUTE, и выполняется автоинкремент значения смещения)5 SESAM_SEEK_RELATIVEизвлечь относительно текущей позиции курсора, где offset может быть положительным или отрицательным значением смещения (также устанавливает "offset"-значение по умолчанию для последовательных вызовов).

offset это необязательный параметр, который вычисляется (и необходим), только если whence равен SESAM_SEEK_RELATIVE или SESAM_SEEK_ABSOLUTE.

sesam_settransaction

(только PHP 3 CVS)

sesam_settransaction - устанавливает параметры транзакции SESAM.

Описание

bool sesam_settransaction (int isolation_level, int read_only)

Возвращает TRUE, если значение правильное и операция settransaction() прошла успешно, иначе FALSE.

sesam_settransaction() переопределяет значения по умолчанию параметров транзакции "isolation level" и "read-only" (которые устанавливаются в файле конфигурации SESAM), чтобы оптимизировать последовательные запросы и гарантировать целостность БД. Переопределённые значения используются только  для следующей транзакции.

sesam_settransaction() может вызываться только до старта транзакции, а не после того как транзакция уже стартовала.

Для упрощения использования в РНР-скриптах были предопределены следующие РНР-константы (см. в руководстве SESAM детальное объяснение семантики):

Таблица 1. Правильные значения параметра "Isolation_Level"
ЗначениеКонстантаСмысл1 SESAM_TXISOL_READ_UNCOMMITTEDчитать без подтверждения2 SESAM_TXISOL_READ_COMMITTEDчитать подтверждённую3 SESAM_TXISOL_REPEATABLE_READповторяемое чтение4 SESAM_TXISOL_SERIALIZABLEсериализована
Таблица 2. Правильные значения параметра "Read_Only"
ЗначениеКонстантаСмысл0 SESAM_TXREAD_READWRITERead/Write1 SESAM_TXREAD_READONLYRead-Only

Значения, установленные функцией sesam_settransaction(), переопределяют значения по умолчанию, специфицированные в файле конфигурации SESAM.

Пример 1. Установка параметров транзакции SESAM

session_cache_expire

(PHP 4 >= 4.2.0)

session_cache_expire - возвращает дату окончания действия текущего кэша.

Описание

int session_cache_expire ([int new_cache_expire])

session_cache_expire() возвращает дату окончания действия текущего кэша. Если new_cache_expire задан, дата окончания действия текущего кэша заменяется на new_cache_expire.

session_cache_limiter

(PHP 4 >= 4.0.3)

session_cache_limiter - получает и/или устанавливает ограничитель текущего кэша.

Описание

string session_cache_limiter ([string cache_limiter])

session_cache_limiter() возвращает имя ограничителя текущего кэша. Если cache_limiter специфицирован, имя текущего ограничителя кэша изменяется на новое.

Ограничитель кэша контролирует HTTP-шапки управления кэшем, отправляемые клиенту. Эти шапки/headers определяют правила кэширования содержимого страницы. Установка кэша nocache, например, отменяет клиентское кэширование. Значение public - разрешает. Можно также установить private, что несколько строже, чем public.

В режиме private шапка Expire, отправляемая клиенту, может нарушить работу некоторых браузеров, включая Mozilla. Вы можете избежать этого с помощью режима private_no_expire. Шапка Expire никогда не отправляется клиенту в этом режиме.

Примечание: private_no_expire был введён в PHP 4.2.0dev.

Ограничитель кэша восстанавливается в значение по умолчанию, хранимое в session.cache_limiter, в начале запроса. Таким образом, вам нужно вызывать session_cache_limiter() для каждого запроса (и до вызова session_start()).

session_decode

(PHP 4)

session_decode - декодирует данные сессии из строки.

Описание

bool session_decode (string data)

session_decode() декодирует данные сессии data, устанавливая переменные, хранимые в сессии.

session_destroy

(PHP 4)

session_destroy - разрушает все данные, зарегистрированные в сессии.

Описание

bool session_destroy (void)

session_destroy() разрушает все данные, ассоциированные с текущей сессией. Не unset/разустанавливает никакие глобальные переменные, ассоциированные с сессией, и не unset куки сессии.

Эта функция возвращает TRUE при успехе и FALSE при неудаче разрушения данных сессии.

session_encode

(PHP 4)

session_encode - кодирует данные текущей сессии как строку.

Описание

string session_encode (void)

session_encode() возвращает строку с кодированным содержимым текущей сессии.

session_get_cookie_params

(PHP 4)

session_get_cookie_params - получает параметры куки сессии.

Описание

array session_get_cookie_params (void)

session_get_cookie_params() возвращает массив с куки-информацией текущей сессии. Массив состоит из:

"lifetime" - период существования куки.

"path" - путь к информации.

"domain" - домен куки.

"secure" - кука должна высылаться только по секретному соединению. (Это было добавлено в PHP 4.0.4.)

session_id

(PHP 4)

session_id - получает и/или устанавливает id текущей сессии.

Описание

string session_id ([string id])

session_id() возвращает id текущей сессии.

Если id специфицирован, он замещает текущий session id. При этом session_id() необходимо вызывать до session_start(). В зависимости от дескриптора сессии, не все символы допустимы в session id. Например, обработчик файловой сессии допускает только символы a-z, A-Z и 0-9!

Константа SID также может использоваться для запрашивания текущих имени и id сессии как строки, пригодной для добавления в URL. Заметьте, что SID определена только в том случае, если клиент не отправил правильной куки. См. Обслуживание сессии.

См. также session_start().

session_is_registered

(PHP 4)

session_is_registered - определяет, зарегистрирована ли переменная в сессии.

Описание

bool session_is_registered (string name)

session_is_registered() возвращает TRUE, если имеется переменная с именем name, зарегистрированная в текущей сессии.

Примечание: если используется $_SESSION (или $HTTP_SESSION_VARS для PHP 4.0.6 или менее), применяйте isset() для проверки регистрации переменной в $_SESSION.

Внимание!Если вы используете $_SESSION (или $HTTP_SESSION_VARS), не используйте session_register(), session_is_registered() и session_unregister().

session_module_name

(PHP 4)

session_module_name - получает и/или устанавливает модуль текущей сессии.

Описание

string session_module_name ([string module])

session_module_name() возвращает имя модуля текущей сессии. Если module специфицирован, будет использоваться он.

session_name

(PHP 4)

session_name - получает и/или устанавливает имя текущей сессии.

Описание

string session_name ([string name])

session_name() возвращает имя текущей сессии. Если name специфицирован, имя текущей сессии изменяется на это значение.

Имя сессии ссылается на session id в куках и URL. Оно должно содержать только алфавитно-числовые символы; оно должно быть коротким и описательным (например, для пользователей с включёнными предупреждениями о куках). Имя сессии восстанавливается в значение по умолчанию, хранимое в session.name во время начала запроса. Таким образом, вам необходимо вызывать session_name() для каждого запроса (и до session_start() или session_register()).

session_readonly

(unknown)

session_readonly - начинает сессию - реинициализирует замороженные переменные, но не записывает их в конце запроса.

Описание

void session_readonly (void)

Читает данные сессии без их блокирования. Изменение данных сессии невозможно, но производительность frameset будет улучшена.

session_register

(PHP 4)

session_register - регистрирует одну или более переменных в текущей сессии.

Описание

bool session_register (mixed name [, mixed ...])

session_register() принимает переменное количество аргументов, любой из которых может быть строкой с именем переменной или массивом, состоящим из имён переменных или других массивов. Для каждого имени session_register() регистрирует глобальную переменную с этим именем в текущей сессии.

Внимание!Это регистрирует глобальную переменную. Если вы хотите зарегистрировать переменную сессии внутри функции, вы должны сделать её глобальной с помощью global() или использовать массивы сессии, как указано ниже.

Внимание!Если вы используете $_SESSION (или $HTTP_SESSION_VARS), не применяйте session_register(), session_is_registered() и session_unregister().

Эта функция возвращает TRUE, когда все переменные успешно зарегистрированы в сессии.

Если session_start() не вызывалась до вызова данной функции, будет сделан неявный вызов session_start() без параметров.

Вы можете также создать переменную сессии, просто установив соответствующего члена массива $_SESSION или $HTTP_SESSION_VARS (PHP < 4.1.0).

$barney = "A big purple dinosaur.";
session_register("barney");
$_SESSION["zim"] = "An invader from another planet.";
# Старый способ - использование $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";

Примечание: в настоящее время невозможно зарегистрировать переменные ресурсов в сессии. Например, вы не можете создать соединение с БД и сохранить id соединения как переменную сессии и ожидать, что соединение останется правильным при следующем восстановлении сессии. PHP-функции, возвращающие ресурс, идентифицируются как имеющие return-тип resource в своих определениях функций. Список функций, возвращающих ресурсы, находится в приложении Типы ресурсов.

Если используется $_SESSION (или $HTTP_SESSION_VARS for PHP 4.0.6 or less), присвойте переменную массиву $_SESSION. То есть: $_SESSION['var'] = 'ABC';

См. также session_is_registered() и session_unregister().

session_save_path

(PHP 4)

session_save_path - получает и/или устанавливает путь сохранения текущей сессии.

Описание

string session_save_path ([string path])

session_save_path() возвращает путь к текущей директории, используемой для сохранения данных сессии. Если path специфицирован, путь для сохранения данных будет изменён.

Примечание: в некоторых ОС вам может понадобиться специфицировать путь в файловой системе, по которому большое количество маленьких файлов будет эффективно обрабатываться. Например, в Linux reiserfs может дать более высокую производительность, чем ext2fs.

session_set_cookie_params

(PHP 4)

session_set_cookie_params - устанавливает параметры куки сессии.

Описание

void session_set_cookie_params (int lifetime [, string path [, string domain [, bool secure]]])

Устанавливает параметры куки, определённые в файле php.ini. Действие этой функции распространяется только на период работы скрипта.

Примечание: параметр secure был введён в PHP 4.0.4.

session_set_save_handler

(PHP 4)

session_set_save_handler - устанавливает пользовательские функции хранения сессии.

Описание

bool session_set_save_handler (string open, string close, string read, string write, string destroy, string gc)

session_set_save_handler() устанавливает пользовательские функции хранения сессии, которые используются для хранения и запрашивания данных, ассоциированных с сессией. Это чаще всего используется, когда метод хранения отличается от методов PHP-сессий. Например, при хранении данных сессии в локальной БД. Возвращает TRUE при успехе, FALSE при неудаче.

Примечание: вы обязаны установить в опции конфигурации session.save_handler значение user в вашем файле php.ini, для того чтобы session_set_save_handler() работала.

Примечание: обработчик "write" не выполняется после закрытия потока вывода. Таким образом, вывод отладочных операторов в обработчике "write" никогда не будет виден в браузере. Если необходим вывод отладки, можно записать его в файл.

В следующем примере показано хранение данных сессии в файле, аналогично обработчику по умолчанию PHP-сессий files. Этот пример можно легко расширить для покрытия хранения БД с использованием вашей любимой машины работы с БД, поддерживаемой в PHP.

Функция read должна всегда возвращать значение, чтобы обработчик сохранения всегда работал, как ожидается. Возвращает пустую строку, если нет данных для чтения. Return-значения из других обработчиков конвертируются в булево выражение. TRUE при успехе, FALSE при неудаче.

session_start

(PHP 4)

session_start - инициализирует данные сессии.

Описание

bool session_start (void)

session_start() создаёт сессию (или продолжает текущую на основе session id, переданного через GET-переменную или куку).

Если вы хотите использовать именованную сессию, вы обязаны вызвать session_name() до вызова session_start().

Эта функция всегда возвращает TRUE.

Примечание: если вы используете сессии на базе кук, вы обязаны вызвать session_start() перед каким-либо выводом в браузер.

session_start() регистрирует внутренний обработчик вывода для URL, перезаписывая, если trans-sid включена. Если пользователь использует ob_gzhandler или ob_start(), порядок обработчика вывода важен для обеспечения правильного вывода. Например, пользователь обязан зарегистрировать ob_gzhandler до старта сессии.

Примечание: рекомендуем использовать zlib.output_compression вместо ob_gzhandler.

session_unregister

(PHP 4)

session_unregister - разрегистрирует переменную в текущей сессии.

Описание

bool session_unregister (string name)

session_unregister() разрегистрирует ("забывает") глобальную переменную с именем name в текущей сессии.

Эта функция возвращает TRUE, если переменная успешно  разрегистрирована в текущей сессии.

Примечание: если используется $_SESSION (или $HTTP_SESSION_VARS для PHP 4.0.6 или ниже), применяйте unset() для разрегистрации переменной сессии.

Внимание!Эта функция не разустанавливает/unset соответствующую глобальную переменную name, она только предотвращает сохранение переменной как части сессии. Вы обязаны вызывать unset() для удаления соответствующей глобальной переменной. Внимание!Если вы используете $_SESSION (или $HTTP_SESSION_VARS), не применяйте session_register(), session_is_registered() и session_unregister().

session_unset

(PHP 4)

session_unset - освобождает все переменные сессии.

Описание

void session_unset (void)

session_unset() освобождает все переменные сессии, зарегистрированные на данный момент.

Примечание: если используется $_SESSION (или $HTTP_SESSION_VARS для PHP 4.0.6 или ниже), применяйте unset() для разрегистрирования переменной сессии, т.е. $_SESSION = array();

session_write_close

(PHP 4 >= 4.0.4)

session_write_close - записывает данные сессии в конце сессии.

Описание

void session_write_close (void)

Заканчивает текущую сессию и сохраняет данные сессии.

Данные сессии обычно сохраняются после окончания работы вашего скрипта без необходимости вызова session_write_close(), но, поскольку данные сессии блокируются для предотвращения конкурирующей записи, только один скрипт может работать с сессией в данный момент времени. При использовании наборов фрэймов/framesets вместе с сессией будете загружать фрэймы один за другим из-за этого блокирования. Вы можете сократить время, необходимое для загрузки всех фрэймов, заканчивая сессию сразу после выполнения всех изменений переменных сессии.

set_error_handler

(PHP 4 >= 4.0.1)

set_error_handler - устанавливает пользовательский обработчик ошибок.

Описание

string set_error_handler (string error_handler)

Устанавливает пользовательскую функцию (error_handler) для обработки ошибок в скрипте. Возвращает ранее определённый обработчик ошибок (если имеется), FALSE при ошибке. Эта функция может использоваться для определения вашего собственного способа обработки ошибок на этапе прогона, например, в приложениях, в которых вам нужно зачистить данные/файлы при возникновении критических ошибок, или если вам нужно переключить ошибку при определённых условиях (использую trigger_error()).

Пользовательская функция должна принимать 2 параметра: error-код и строку с описанием ошибки. Начиная с PHP 4.0.2, предоставляются дополнительные 3 параметра: имя файла, в котором появилась ошибка, номер строчки, в которой появилась ошибка, и контекст, в котором появилась ошибка (массив, указывающий на активную таблицу символов в точке возникновения ошибки).

Примечание: следующие типы ошибок не могут быть обработаны пользовательской функцией: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR и E_COMPILE_WARNING.

Следующий пример показывает обработку внутренних исключений путём переключения ошибок и обработки их пользовательской функцией:

set_file_buffer

(PHP 3>= 3.0.8, PHP 4 >= 4.0.1)

set_file_buffer - устанавливает буферизацию файла в данном указателе файла.

Описание

int set_file_buffer (int fp, int buffer)

Вывод с помощью fwrite() обычно буферизуется в 8K. Это означает, что, если есть два процесса, желающих записать в один поток вывода (в файл), каждый делает паузу после 8K данных, позволяя другому записать. set_file_buffer() устанавливает буферизацию для операций записи в данном указателе файла fp в buffer байт. Если buffer равен 0, операции записи разбуферизуются. Это гарантирует, что все записи с помощью fwrite() выполнятся до получения другими процессами разрешения на запись в этот поток вывода.

Функция возвращает 0 при успехе, или EOF, если запрос не может быть выполнен.

В примере показано, как использовать set_file_buffer() для создания небуферизованного потока.

set_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4)

set_magic_quotes_runtime - устанавливает установку текущей активной конфигурации magic_quotes_runtime.

Описание

long set_magic_quotes_runtime (int new_setting)

Установить установку magic_quotes_runtime текущей активной конфигурации (0 для off, 1 для on).

См. также get_magic_quotes_gpc() и get_magic_quotes_runtime().

set_time_limit

(PHP 3, PHP 4)

set_time_limit - ограничивает время выполнения.

Описание

void set_time_limit (int seconds)

Устанавливает время в секундах, в течение которого скрипт может работать. Если это значение достигнуто, скрипт возвращает фатальную ошибку. По умолчанию лимит - 30 секунд или, если оно существует, значение max_execution_time, определённое в файле конфигурации. Если seconds имеет значение 0, лимита нет.

При вызове set_time_limit() рестартует счётчик таймаута с нуля. Иначе говоря, если таймаут по умолчанию 30 секунд, прошло 25 секунд выполнения скрипта и сделан такой вызов set_time_limit(20), скрипт будет работать 45 секунд перед таймаутом.

set_time_limit() не действует, если PHP запущен в режиме safe mode. Нет иного выхода, кроме отключения safe mode или изменения лимита времени в файле конфигурации.

Примечание: функция set_time_limit() и директива конфигурации max_execution_time влияют только на время выполнения самого скрипта. Любое время, затраченное на деятельность вне выполнения скрипта, такую как системные вызовы с помощью system(), функция sleep(), запросы к БД etc. не включается при подсчёте максимального времени работы скрипта.

setcookie

(PHP 3, PHP 4)

setcookie - отправляет куки.

Описание

int setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

setcookie() определяет куку для отправки вместе с остальной header-информацией. Куки обязаны быть отправлены до любых других шапок/headers (это ограничение кук, а не РНР). Это требует, чтобы вы помещали вызовы этой функции перед тэгами <html> или <head>.

Все аргументы, кроме name, являются необязательными. Если имеется только аргумент name, кука с этим именем будет удалена с удалённого клиента. Вы можете также заместить любой аргумент пустой строкой (""), чтобы пропустить этот аргумент. Аргументы expire и secure это целые числа/integer и они не могут быть пропущены с помощью пустой строки. В них используйте нуль (0). Аргумент expire это обычное Unix time integer, возвращаемое функциями time() или mktime(). Аргумент secure указывает, что данная кука должна передаваться только через секретное HTTPS-соединение.

После того как куки установлены, доступ к ним может быть получен при загрузке следующей страницы через массив $_COOKIE (который вызывается $HTTP_COOKIE_VARS в версиях PHP до 4.1.0).

Обычные ловушки:

Куки будут невидимы до тех пор, пока не будет загружена следующая страница.

Куки обязаны быть удалены с теми же параметрами, с которыми были установлены.

В PHP 3 множественные вызовы setcookie() в том же скрипте могут быть выполнены в реверсном порядке. Если вы пытаетесь удалить одну куку до вставки другой, вы должны сделать вставку до удаления. В PHP 4 множественные вызовы setcookie() выполняются в порядке вызова.

Далее идут примеры отправки кук:

Пример 1. Отправка кук функцией setcookie()
setcookie ("TestCookie", $value);
setcookie ("TestCookie", $value,time()+3600); /* период действия - 1 час */
setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

При удалении куки вы должны убедиться, что дата окончания действия прошла, чтобы переключить механизм в вашем браузере. Далее идут примеры удаления куки, созданной в предыдущем примере:

setlocale

(PHP 3, PHP 4)

setlocale - устанавливает локальную информацию.

Описание

string setlocale (mixed category, string locale)

Category это именованная константа (или строка), специфицирующая категорию функций, на которые действуют локальные установки:

LC_ALL - все ниже указанные

LC_COLLATE - сравнение строк, см. strcoll()

LC_CTYPE - классификация и конвертация символов, например, strtoupper()

LC_MONETARY - localeconv()

LC_NUMERIC - десятичный сепаратор (см. также: localeconv())

LC_TIME - форматирование даты и времени с помощью strftime()

Если locale это пустая строка "", название локализации будет установлено из значений переменных окружения с теми же именами, что и вышеуказанные категории, или из "LANG".

Если locale равен нулю или "0", локальные установки не меняются, только возвращаются текущие установки.

Setlocale возвращает новую текущую локализацию, или FALSE, если locale-функциональность не реализована на данной платформе, специфицированная locale не существует или имя категории неправильное. Неправильное имя категории вызывает также появление предупреждающего сообщения.

settype

(PHP 3, PHP 4)

settype - устанавливает тип переменной.

Описание

bool settype (mixed var, string type)

Устанавливает тип type переменной var.

Возможные значения type:

"boolean" (или, начиная PHP 4.2.0, "bool")

"integer" (или, начиная PHP 4.2.0, "int")

"float" (только начиная с PHP 4.2.0; для более старых версий используйте не рекомендуемый вариант "double")

"string"

"array"

"object"

"null" (начиная с PHP 4.2.0)

Возвращает TRUE при успехе; иначе возвращает FALSE.

shell_exec

(PHP 4)

shell_exec - выполняет команду в оболочке/shell и возвращает полный вывод в виде строки.

Описание

string shell_exec (string cmd)

Эта функция идентична  операции backtick (обратные апострофы).

shm_attach

(PHP 3>= 3.0.6, PHP 4)

shm_attach - создаёт или открывает сегмент shared-памяти.

Описание

int shm_attach (int key [, int memsize [, int perm]])

shm_attach() возвращает id, который можно использовать для доступа к System V shared-памяти, с данным ключом.

Первый вызов создаёт сегмент shared-памяти с mem_size (по умолчанию: sysvshm.init_mem в файле конфигурации, иначе 10000 байт) и необязательным perm-bits (по умолчанию: 0666).

Второй вызов shm_attach() с тем же key возвратит другой идентификатор shared-памяти, но оба идентификатора выполняют доступ к той же shared-памяти. Memsize и perm будут игнорироваться.

См. также ftok().

Примечание: эта функция не работает в системах Windows.

shm_detach

(PHP 3>= 3.0.6, PHP 4)

shm_detach - отсоединяет от сегмента shared-памяти.

Описание

int shm_detach (int shm_identifier)

shm_detach() отсоединяет от сегмента shared-памяти shm_identifier, созданного функцией shm_attach(). Запомните, что shared-память продолжает существовать в системах Unix, и данные также продолжают существовать.

shm_get_var

(PHP 3>= 3.0.6, PHP 4)

shm_get_var - возвращает переменную из shared-памяти.

Описание

mixed shm_get_var (int id, int variable_key)

shm_get_var() возвращает переменную с данным variable_key. Переменная всё ещё существует в shared-памяти.

Примечание: эта функция не работает на системах Windows.

shm_put_var

(PHP 3>= 3.0.6, PHP 4)

shm_put_var - вставляет или обновляет переменную в shared-памяти.

Описание

int shm_put_var (int shm_identifier, int variable_key, mixed variable)

Вставляет или обновляет переменную variable с заданным variable_key. Поддерживаются переменные всех типов.

Примечание: эта функция не работает на системах Windows.

shm_remove

(PHP 3>= 3.0.6, PHP 4)

shm_remove - удаляет shared-память с систем Unix.

Описание

int shm_remove (int shm_identifier)

Удаляет shared-память с систем Unix. Все данные разрушаются.

Примечание: эта функция не работает в системах Windows.

shm_remove_var

(PHP 3>= 3.0.6, PHP 4)

shm_remove_var - удаляет переменную из shared-памяти.

Описание

int shm_remove_var (int id, int variable_key)

Удаляет переменную с заданным variable_key и освобождает занимаемую память.

Примечание: эта функция не работает в системах Windows.

shmop_close

(PHP 4 >= 4.0.4)

shmop_close - закрывает блок shared-памяти.

Описание

int shmop_close (int shmid)

shmop_close() закрывает блок shared-памяти.

shmop_close() принимает shmid, который является идентификатором блока shared-памяти, созданным функцией shmop_open().

Пример 1. Закрытие блока shared-памяти

shmop_delete

(PHP 4 >= 4.0.4)

shmop_delete - удаляет блок shared memory.

Описание

int shmop_delete (int shmid)

shmop_delete() удаляет блок shared-памяти.

shmop_delete() принимает shmid, который является идентификатором блока shared-памяти, созданным функцией shmop_open(). При успехе возвращает 1, 0 при неудаче.

shmop_open

(PHP 4 >= 4.0.4)

shmop_open - создаёт или открывает блок shared-памяти.

Описание

int shmop_open (int key, string flags, int mode, int size)

shmop_open() создаёт или открывает блок shared-памяти.

shmop_open() принимает 4 параметра: key системный id для блока shared memory, этот параметр может передаваться как 10-ричный или 16-ричный. Второй параметр это флаги:

"a" для access/доступ (устанавливает SHM_RDONLY для shmat); используйте этот флаг, если необходимо открыть существующий сегмент shared-памяти только для чтения

"c" для create/создать (устанавливает IPC_CREATE); используйте этот флаг, если необходимо создать новый сегмент shared-памяти или, если сегмент с тем же ключом уже существует, попытаться открыть его для чтения и записи

"w" для доступа read & write/чтения и записи; используйте этот флаг, если необходимо читать и записывать в сегмент shared-памяти; используйте этот флаг в большинстве случаев

"n" для создания нового сегмента памяти (устанавливает IPC_CREATE|IPC_EXCL); используйте этот флаг, если хотите создать новый сегмент shared-памяти, но, если он уже существует с тем же флагом, будет неудача. Это используется только для целей обеспечения секретности.

Третий параметр mode это режим - разрешения, которые вы хотите назначить вашему сегменту памяти, которые являются теми же, что и разрешения для файла. Разрешения должны передаваться в 8-ричной форме, например, 0644. Последний параметр size это размер в байтах блока shared-памяти, который вы хотите создать.

Примечание: третий и четвёртый параметры должны вводиться как 0, если вы открываете существующий сегмент памяти. При успехе shmop_open() возвратит id, который можно использовать для доступа к сегменту shared-памяти, созданному вами.

shmop_read

(PHP 4 >= 4.0.4)

shmop_read - читает данные из блока shared-памяти.

Описание

string shmop_read (int shmid, int start, int count)

shmop_read() читает строку из блока shared-памяти.

shmop_read() принимает 3 параметра: shmid, который является идентификатором блока shared-памяти, созданным функцией shmop_open(), смещение, с которого начинать чтение, и count - количество байтов для чтения.

shmop_size

(PHP 4 >= 4.0.4)

shmop_size - получает размер блока shared-памяти.

Описание

int shmop_size (int shmid)

shmop_size() получает размер, в байтах, блока shared-памяти.

shmop_size() принимает shmid - идентификатор блока shared-памяти, созданный функцией shmop_open(). Функция возвращает int, представляющее количество байт, занимаемых блоком shared-памяти.

shmop_write

(PHP 4 >= 4.0.4)

shmop_write - записывает данные в блок shared-памяти.

Описание

int shmop_write (int shmid, string data, int offset)

shmop_write() принимает 3 параметра: shmid - идентификатор блока shared-памяти, созданный функцией shmop_open(), data - строку, которую вы хотите записать в блок shared-памяти, и offset  - смещение, которое специфицирует место, где начинать запись данных в сегменте shared-памяти.

show_source

(PHP 4)

show_source - выделение синтаксиса файла.

Описание

bool show_source (string filename [, bool return])

Эта функция является псевдонимом highlight_file().

См. также highlight_string() и highlight_file().

shuffle

(PHP 3>= 3.0.8, PHP 4)

shuffle - перетряхивает массив.

Описание

void shuffle (array array)

Эта функция перетряхивает массив (перемешивает элементы в произвольном порядке). Для этого вы обязаны посеять с помощью srand().

similar_text

(PHP 3>= 3.0.7, PHP 4)

similar_text - вычисляет сходство между двумя строками.

Описание

int similar_text (string first, string second [, float percent])

Вычисляет сходство между двумя строками, как описано в Oliver [1993]. Обратите внимание, что эта реализация не использует стэк, как в псевдокоде Oliver'а, а вызывает рекурсивно, что может, или может не, ускорить весь процесс. Заметьте также сложность этого алгоритма O(N**3), где N это длина самой длинной строки.

При передаче ссылки в качестве третьего параметра, similar_text() вычисляет сходство в процентах. Возвращает количество совпавших символов в обеих строках.

sin

(PHP 3, PHP 4)

sin - синус.

Описание

float sin (float arg)

sin() возвращает синус аргумента arg. Параметр arg задан в радианах.

sinh

(PHP 4 >= 4.1.0)

sinh - гиперболический синус.

Описание

float sinh (float arg)

Возвращает гиперболический синус аргумента arg, определённый как (exp(arg) - exp(-arg))/2.

См. также sin(), asinh(), cos() и tan().

sizeof

(PHP 3, PHP 4)

sizeof - получает количество элементов в переменной.

Описание

int sizeof (mixed var)

sizeof() это псевдоним для count().

См. также count().

sleep

(PHP 3, PHP 4)

sleep - замедляет выполнение.

Описание

void sleep (int seconds)

Функция sleep задерживает выполнение программы на данное количество секунд seconds.

См. также usleep() и set_time_limit().

snmp_get_quick_print

(PHP 3>= 3.0.8, PHP 4)

snmp_get_quick_print - извлекает текущее значение установки quick_print библиотеки UCD.

Описание

bool snmp_get_quick_print (void)

Возвращает текущее значение quick_print, хранимое в библиотеке UCD. По умолчанию quick_print отключена/off.

$quickprint = snmp_get_quick_print();

Этот вызов функции возвратит FALSE, если quick_print off, и TRUE, если quick_print on.

snmp_get_quick_print() доступна только при использовании библиотеки UCD SNMP. Эта функция недоступна при использовании Windows-библиотеки SNMP.

См. в snmp_set_quick_print() полное описание работы quick_print.

snmp_set_quick_print

(PHP 3>= 3.0.8, PHP 4)

snmp_set_quick_print - устанавливает значение quick_print в UCD SNMP-библиотеке.

Описание

void snmp_set_quick_print (bool quick_print)

Устанавливает значение quick_print внутри библиотеки UCD SNMP. Если установлено (1), SNMP-библиотека возвращает 'quick printed' значения. Это значит, что будет печататься просто значение. Если quick_print не включена (по умолчанию), UCD SNMP-библиотека печатает и дополнительную информацию, включая тип значения (т.е. IpAddress или OID). Кроме того, если quick_print не включена, библиотека печатает дополнительные hex-значения всех строк из трёх или менее символов.

Установка quick_print часто применяется, если используемая информация возвращается, а не отображается.

snmpget

(PHP 3, PHP 4)

snmpget - извлекает SNMP-объект.

Описание

string snmpget (string hostname, string community, string object_id [, int timeout [, int retries]])

Возвращает значение SNMP-объекта при успехе, FALSE при ошибке.

snmpget() используется для чтения значения SNMP-объекта object_id. SNMP-агент специфицируется параметром hostname, а сообщество чтения - параметром community.

snmprealwalk

(PHP 3>= 3.0.8, PHP 4)

snmprealwalk - возвращает все объекты, включая их object id, записывая специфицированный.

Описание

array snmprealwalk (string host, string community, string object_id [, int timeout [, int retries]])

Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

snmpset

(PHP 3>= 3.0.12, PHP 4)

snmpset - устанавливает SNMP-объект.

Описание

bool snmpset (string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]])

Устанавливает значение специфицированного SNMP-объекта, возвращая TRUE при успехе и FALSE при ошибке.

snmpset() используется для установки значения SNMP-объекта object_id. SNMP-агент специфицируется параметром hostname, а сообщество чтения/read community - параметром community.

snmpwalk

(PHP 3, PHP 4)

snmpwalk - извлекает все SNMP-объекты из агента.

Описание

array snmpwalk (string hostname, string community, string object_id [, int timeout [, int retries]])

Возвращает: массив значений SNMP-объектов, начиная с object_id как root, FALSE при ошибке.

snmpwalk() используется для чтения всех значений из SNMP-агента hostname. Community специфицирует read community этого агента. NULL object_id считается root дерева SNMP-объектов, и все объекты ниже этого дерева возвращаются как массив. Если object_id специфицирован, возвращаются все SNMP-объекты, ниже этого object_id.

$a = snmpwalk("127.0.0.1", "public", "");

Этот вызов функции возвратит все SNMP-объекты из SNMP-агента, запущенного на localhost. Можно пройти по значениям с помощью цикла:

snmpwalkoid

(PHP 3>= 3.0.8, PHP 4)

snmpwalkoid - запрашивает дерево информации о сетевом объекте.

Описание

array snmpwalkoid (string hostname, string community, string object_id [, int timeout [, int retries]])

Возвращает ассоциативный массив с object id'ами и их соответствующими значениями, начиная с object_id как root, FALSE при ошибке.

snmpwalkoid() используется для чтения всех object id'ов и их соответствующих значений из SNMP-агента hostname. Community специфицирует read community этого агента. NULL object_id считается root дерева SNMP-объектов, и все объекты ниже этого дерева возвращаются как массив. Если object_id специфицирован, возвращаются все SNMP-объекты, ниже этого object_id.

Существование snmpwalkoid() и snmpwalk() имеет исторические корни. Обе функции предоставлены для обеспечения обратной совместимости.

socket_accept

(PHP 4 >= 4.1.0)

socket_accept - принимает соединение с сокетом.

Описание

resource socket_accept (resource socket)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

После того как сокет socket создан функцией socket_create(), связан с именем с помощью socket_bind() и начал прослушивание соединений с помощью socket_listen(), эта функция будет принимать входящие соединения по этому сокету. После создания успешного соединения возвращается новый ресурс сокета, который может использоваться при взаимодействии. Если в сокете имеется очередь из нескольких соединений, используется первое соединение. Если запущенных соединений нет, socket_accept() будет блокирована, пока соединение не появится. Если socket сделан неблокирующим с помощью функции socket_set_blocking() или socket_set_nonblock(), будет возвращено FALSE.

Ресурс сокета, возвращаемый функцией socket_accept(), не может использоваться для приёма новых соединений. Однако оригинальный прослушивающий сокет socket оста1тся открытым и может использоваться повторно.

Возвращает новый ресурс сокета успехе, FALSE при ошибке. Код ошибки можно запросить функцией socket_last_error(). Этот код ошибки можно передавать в socket_strerror() для получения текстового объяснения ошибки.

См. также socket_bind(), socket_connect(), socket_listen(), socket_create() и socket_strerror().

socket_bind

(PHP 4 >= 4.1.0)

socket_bind - связывает имя с сокетом.

Описание

bool socket_bind (resource socket, string address [, int port])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

socket_bind() связывает имя в address с сокетом socket, который обязан быть правильным ресурсом сокета, созданным функцией socket_create().

Параметр address это либо IP-адрес в нотации dotted-quad (например, 127.0.0.1), если это сокет из семейства AF_INET, либо pathname сокета Unix-домена, если это сокет из семейства AF_UNIX.

Параметр port используется только при соединении с AF_INET-сокетом и обозначает порт на удалённом хосте, с которым должно быть установлено соединение.

Возвращает TRUE при успехе, FALSE при неудаче. Код ошибки можно запросить функцией socket_last_error(). Этот код ошибки можно передавать в socket_strerror() для получения текстового объяснения ошибки.

См. также socket_connect(), socket_listen(), socket_create(), socket_last_error() и socket_strerror().

socket_clear_error

(PHP 4 >= 4.2.0)

socket_clear_error - очищает ошибку в сокете или последний error-код.

Описание

void socket_clear_error ([resource socket])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

Эта функция очищает код ошибки в данном сокете или последнюю глобальную ошибку сокета.

Эта функция позволяет явным образом восстанавливать/reset значение error-кода сокета или глобальный последний error-код расширения. Это можно использовать для определения возникновения ошибки внутри части приложения.

См. также socket_last_error() и socket_strerror().

socket_close

(PHP 4 >= 4.1.0)

socket_close - закрывает ресурс сокета.

Описание

void socket_close (resource socket)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

socket_close() закрывает ресурс сокета socket.

Примечание: socket_close() не может использоваться в файловых РНР-ресурсах, созданных функциями fopen(), popen(), fsockopen() или psockopen(); на имеет смысл для сокетов, созданных функциями socket_create() или socket_accept().

См. также socket_bind(), socket_listen(), socket_create() и socket_strerror().

socket_connect

(PHP 4 >= 4.1.0)

socket_connect - инициирует соединение с сокетом.

Описание

bool socket_connect (resource socket, string address [, int port])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

Инициирует соединение с использованием ресурса сокета socket, который обязан быть правильным ресурсом сокета, созданным функцией socket_create().

Параметр address это либо IP-адрес в нотации dotted-quad (например, 127.0.0.1), если это сокет из семейства AF_INET, либо pathname сокета Unix-домена, если это сокет из семейства AF_UNIX.

Параметр port используется только при соединении с AF_INET-сокетом и обозначает порт на удалённом хосте, с которым должно быть установлено соединение.

Возвращает TRUE при успехе, FALSE при неудаче. Код ошибки можно запросить функцией socket_last_error(). Этот код ошибки можно передавать в socket_strerror() для получения текстового объяснения ошибки

См. также socket_bind(), socket_listen(), socket_create(), socket_last_error() и socket_strerror().

socket_create

(PHP 4 >= 4.1.0)

socket_create - создаёт сокет (конечную точку соединения).

Описание

resource socket_create (int domain, int type, int protocol)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

Создаёт конечную точку соединения (сокет) и возвращает ресурс сокета.

Параметр domain устанавливает домен (семейство протокола) для использования в соединении. В настоящее время понимаются AF_INET и AF_UNIX. AF_INET обычно используется для соединений на основе internet. AF_UNIX использует pathnames для идентификации сокетов и, следовательно, применим только для локальных соединений (что, с другой стороны, быстрее).

Параметр type выбирает тип сокета. Это один из: SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, SOCK_RDM, SOCK_PACKET. Два самых распространённых - SOCK_DGRAM для UDP (connectionless) взаимодействия и SOCK_STREAM для TCP-взаимодействия.

protocol устанавливает протокол: SOL_UDP или SOL_TCP.

Возвращает ресурс сокета при успехе, FALSE при ошибке. Код ошибки можно запросить функцией socket_last_error(). Этот код ошибки можно передавать в socket_strerror() для получения текстового объяснения ошибки.

Дополнительно об использовании socket_create(), а также о значениях различных параметров, см. Unix man-страницу socket (2).

Примечание: если задан неверный domain или type, socket_create() по умолчанию имеет AF_INET и SOCK_STREAM соответственно и дополнительно выдаёт сообщение E_WARNING.

См. также socket_accept(), socket_bind(), socket_connect(), socket_listen(), socket_last_error() и socket_strerror().

socket_create_listen

(PHP 4 >= 4.1.0)

socket_create_listen - открывает сокет на порте для приёма соединений.

Описание

resource socket_create_listen (int port [, int backlog])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

Эта функция призвана облегчить создание нового сокета, который только прослушивает для приёма новых соединений.

socket_create_listen() создаёт новый ресурс сокета типа AF_INET, прослушивающего все локальные интерфейсы по данному порту, ожидая новых соединений.

Параметр backlog определяет максимальный размер очереди запускаемых соединений. SOMAXCONN может передаваться как параметр backlog; см. дополнительно socket_listen().

socket_create_listen() возвращает ресурс нового сокета при успехе, FALSE при ошибке. Код ошибки можно запросить функцией socket_last_error(). Этот код ошибки можно передавать в socket_strerror() для получения текстового объяснения ошибки.

Примечание: если вы хотите создать сокет, который прослушивает только определённые интерфейсы, необходимо использовать socket_create(), socket_bind() и socket_listen().

См. также socket_create(), socket_bind(), socket_listen(), socket_last_error() и socket_strerror().

socket_create_pair

(PHP 4 >= 4.1.0)

socket_create_pair - создаёт пару одинаковых сокетов и сохраняет их в fd'ах.

Описание

bool socket_create_pair (int domain, int type, int protocol, array &fd)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_get_option

(только PHP 4 CVS)

socket_get_option - получает опции сокета.

Описание

mixed socket_get_option (resource socket, int level, int optname)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

Примечание: эта функция вызывалась socket_getopt() в версиях до PHP 4.3.0.

socket_get_status

(PHP 4)

socket_get_status - возвращает информацию о существующем потоке сокета.

Описание

array socket_get_status (resource socketstream)

Возвращает информацию о существующем потоке сокета. Эта функция работает только на сокетах, созданных функцией fsockopen(), pfsockopen(), или на сетевых сокетах, возвращённых функцией fopen() при открытии URLs. Она НЕ работает с сокетами из расширения Socket. В настоящее время возвращает 4 элемента в результирующем массиве:

timed_out (bool) - этот сокет находится в режиме таймаута в ожидании данных

blocked (bool) - этот сокет был блокирован

eof (bool) - указывает на событие EOF

unread_bytes (int) - количество байтов, оставшихся в буфере сокета

См. также расширение Socket. socket_getpeername

socket_getsockname

(PHP 4 >= 4.1.0)

socket_getsockname - запрашивает локальную сторону данного сокета, что может дать либо пару host/port, либо путь файловой системы UNIX, в зависимости от типа.

Описание

bool socket_getsockname (resource socket, string &addr [, int &port])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

Если это сокет типа AF_INET, socket_getpeername() возвратит peer (удалённый) IP-адрес в нотации dotted-quad (например, 127.0.0.1) в параметре address и, если имеется необязательный параметр port, также ассоциированный порт.

Если это сокет типа AF_UNIX, socket_getpeername() возвратит путь файловой системы UNIX (например, /var/run/daemon.sock) в параметре address.

Возвращает TRUE при успехе, FALSE при неудаче. socket_getpeername() может также возвратить FALSE, если сокет имеет тип не AF_INET и не AF_UNIX; тогда последний код ошибки сокета не обновляется.

См. также socket_getpeername(), socket_last_error() и socket_strerror().

socket_iovec_add

(PHP 4 >= 4.1.0)

socket_iovec_add - добавляет новый вектор к массиву scatter/gather.

Описание

bool socket_iovec_add (resource iovec, int iov_len)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_iovec_alloc

(PHP 4 >= 4.1.0)

socket_iovec_alloc - ...]) строит 'struct iovec' для использования с sendmsg, recvmsg, writev и readv.

Описание

resource socket_iovec_alloc (int num_vectors [, int ])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_iovec_delete

(PHP 4 >= 4.1.0)

socket_iovec_delete - удаляет вектор из массива векторов.

Описание

bool socket_iovec_delete (resource iovec, int iov_pos)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_iovec_fetch

(PHP 4 >= 4.1.0)

socket_iovec_fetch - возвращает данные, содержащиеся в iovec, специфицированном в iovec_id[iovec_position].

Описание

string socket_iovec_fetch (resource iovec, int iovec_position)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_iovec_free

(PHP 4 >= 4.1.0)

socket_iovec_free - освобождает iovec, специфицированный аргументом iovec_id.

Описание

bool socket_iovec_free (resource iovec)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_iovec_set

(PHP 4 >= 4.1.0)

socket_iovec_set - устанавливает данные в iovec_id[iovec_position] в new_val.

Описание

bool socket_iovec_set (resource iovec, int iovec_position, string new_val)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_last_error

(PHP 4 >= 4.1.0)

socket_last_error - возвращает последнюю ошибку на сокете.

Описание

int socket_last_error ([resource socket])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

Эта функция возвращает код ошибки сокета.

Если ресурс сокета передаётся этой функции, возвращается код последней ошибки, возникшей на этом конкретном сокете. Если ресурс сокета опущен, возвращается error-код неудачи последней функции сокета. Последнее может помочь при работе с такими функциями как socket_create(), которая не возвращает сокет при неудаче, и с socket_select(), которая может завалиться по причинам, не связанным непосредственно с конкретным сокетом. Код ошибки можно применять в socket_strerror(), которая возвращает строку с описанием данного error-кода.

socket_listen

(PHP 4 >= 4.1.0)

socket_listen - прослушивает соединение на сокете.

Описание

bool socket_listen (resource socket [, int backlog])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

После того как сокет socket создан с помощью socket_create() и связан с именем с помощью socket_bind(), он может прослушивать входящие соединения в сокете socket.

Для процессинга в очередь ставится максимум backlog соединений. Если запрос соединения достигает заполненной очереди, клиент может получить ошибку с указанием ECONNREFUSED или, если протокол допускает ретрансмиссию, запрос может быть проигнорирован, поэтому возможны повторные попытки.

Примечание: максимальное количество, передаваемое в параметр backlog, сильно зависит от платформы. В linux оно втихую обрезается до SOMAXCONN. В win32, если передано SOMAXCONN, провайдер сервиса отвечает за установку backlog сокета в максимальное разумное значение. На этой платформе нет стандарта для установки реального backlog-значения.

socket_listen() применяется только для сокетов типа SOCK_STREAM или SOCK_SEQPACKET.

Возвращает TRUE при успехе, FALSE при неудаче. Код ошибки можно запросить функцией socket_last_error(). Этот код может быть передан в socket_strerror() для получения текстового объяснения ошибки.

См. также socket_accept(), socket_bind(), socket_connect(), socket_create() и socket_strerror().

socket_read

(PHP 4 >= 4.1.0)

socket_read - читает максимум length байтов из сокета.

Описание

string socket_read (resource socket, int length [, int type])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

Функция socket_read() читает из сокета socket, созданного функцией socket_accept(), максимальное количество байтов length. В ином случае вы можете использовать \r, \n или \0 для окончания чтения (в зависимости от параметра type; см. ниже).

Возвращает данные как строку при успехе, FALSE при ошибке. Код ошибки может быть запрошен функцией socket_last_error(). Это код можно передать в socket_strerror() для получения текстового объяснения ошибки.

Примечание: socket_read() может возвратить строку нулевой длины, обозначающую конец соединения (т.е. удалённая точка закрыла соединения).

Необязательный параметр type является именованной константой:

PHP_BINARY_READ - использует системный read(). Безопасно для чтения бинарных данных. (По умолчанию в PHP >= 4.1.0).

PHP_NORMAL_READ - чтение останавливается у \n или \r. (По умолчанию PHP <= 4.0.6).

См. также socket_accept(), socket_bind(), socket_connect(), socket_listen(), socket_last_error(), socket_strerror() и socket_write().

socket_readv

(PHP 4 >= 4.1.0)

socket_readv - читает из fd, используя scatter-gather массив, определённый в iovec_id.

Описание

bool socket_readv (resource socket, resource iovec_id)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_recv

(PHP 4 >= 4.1.0)

socket_recv - получает данные из соединённого сокета.

Описание

string socket_recv (resource socket, int len, int flags)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_recvfrom

(PHP 4 >= 4.1.0)

socket_recvfrom - получает данные из сокета, соединённого или нет.

Описание

int socket_recvfrom (resource socket, string &buf, int len, int flags, string &name [, int &port])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_recvmsg

(PHP 4 >= 4.1.0)

socket_recvmsg - используется для получения сообщений на сокете, ориентированного на соединение или нет.

Описание

bool socket_recvmsg (resource socket, resource iovec, array &control, int &controllen, int &flags, string &addr [, int &port])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.

socket_select

(PHP 4 >= 4.1.0)

socket_select - запускает системный вызов select() на данных массивах сокетов с таймаутом, специфицированным параметрами tv_sec и tv_usec.

Описание

int socket_select (resource &read, resource &write, resource &except, int tv_sec [, int tv_usec])

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

socket_select() принимает массивы сокетов и ожидает их для изменения статуса. Сокеты, приходящие из BSD, будут распознаваться как так называемые наборы дескрипторов файлов. Ожидаются три массива ресурсов сокетов.

Сокеты массива read будут ожидаться, чтобы просмотреть, становятся ли символы доступными для чтения (точнее, чтобы просмотреть, не будет ли блокировано чтение; ресурс сокета готов также и в end-of-file, и в этом случае socket_read() возвратит строку нулевой длины).

Сокеты из массива write будут ожидаться, чтобы просмотреть, не будет блокировано ли чтение.

Сокеты из массива except ожидаются для исключений.

Предупреждение!При выходе эти массивы модифицируются для указания на то, какой ресурс сокета фактически изменил статус.

Вам не нужно передавать каждый массив в socket_select(). Вместо них вы можете использовать пустой массив или NULL. Не забывайте также, что эти массивы передаются по сылке и будут модифицированы после возвращения из socket_select().

Пример:

socket_send

(PHP 4 >= 4.1.0)

socket_send - отправляет данные в соединённый сокет.

Описание

int socket_send (resource socket, string buf, int len, int flags)

Предупреждение!Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск. Предупреждение!Эта функция в настоящее время ещё не задокументирована; имеется только список аргументов.