Функции Язык программирования PHP

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 это ограничение отсутствует, и сохраняются как свойства, так и методы. См. раздел Сериализация объектов главы Классы и объекты.

Пример 1. serialize()
// $session_data содержит многомерный массив с информацией сессии // 
для текущего пользователя. Мы используем serialize() для сохранения // его в базе 
данных в конце запроса. $conn = odbc_connect ("webdb", "php", "chicken"); $stmt 
= odbc_prepare ($conn, "UPDATE sessions SET data = ? WHERE id = ?"); $sqldata 
= array (serialize($session_data), $PHP_AUTH_USER); if (!odbc_execute ($stmt, 
&$sqldata)) { $stmt = odbc_prepare($conn, "INSERT INTO sessions (id, data) 
VALUES(?, ?)"); if (!odbc_execute($stmt, &$sqldata)) { /* Что-то было не так. 
Bitch, whine and moan. */ } }

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


Назад Оглавление Вперёд
print_r Вверх settype

Субпатэрны

Фактически такое выполнение обычными скобками двух функций не всегда помогает. Бывают случаи, когда необходим группировка субпатэрнов без необходимости захвата. Если после открывающей скобки идёт "?:", субпатэрн не выполняет захвата и не учитывается при подсчёте количества захвативших субпатэрнов. Например, если строка "the white queen" сопоставляется с патэрном

((?:red|white) (king|queen))

то будут захвачены подстроки "white queen" и "queen", и они будут пронумерованы 1 и 2. Максимальное количество захватываемых подстрок - 99, а максимальное количество всех субпатэрнов, захватывающих и незахватывающих, равно 200.

В качестве удобной аббревиатуры, если любые установки опций нужны в начале незахватывающего субпатэрна, буквы опций могут появляться между "?" и ":". Таким образом, два субпатэрна

(?i:saturday|sunday)
(?:(?i)saturday|sunday)

совпадают с одним и тем же набором строк. Поскольку альтернативные ветви пробуются слева направо, а опции не восстанавливают значения, пока не будет достигнут конец субпатэрна, установка опций в одной ветви не влияет на последующие ветви, и поэтому вышеприведённые патэрны совпадают с "SUNDAY", а также с "Saturday".