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 при неудаче.
В следующем примере показано хранение данных сессии в файле, аналогично обработчику по умолчанию PHP-сессий files. Этот пример можно легко расширить для покрытия хранения БД с использованием вашей любимой машины работы с БД, поддерживаемой в PHP. Функция read должна всегда возвращать значение, чтобы обработчик сохранения всегда работал, как ожидается. Возвращает пустую строку, если нет данных для чтения. Return-значения из других обработчиков конвертируются в булево выражение. TRUE при успехе, FALSE при неудаче. |
||||||||||
|
||||||||||
По умолчанию квантификаторы являются "жадными", то есть они совпадают максимально
возможное количество раз (до максимально допустимого количества раз), не вызывая
неудачи выполнения остальной части патэрна. Классический пример, когда это создаёт
проблемы - попытка найти совпадения в комментарии C-программ. Комментарии появляются
между символами /* и */, а внутри могут появляться отдельные символы * и /.
Попытка найти совпадение с C-комментариями, применив патэрн
/\*.*\*/
к строке
/* первый комментарий */ не комментарий /* второй комментарий */
терпит неудачу, поскольку происходит совпадение с целой строкой из-за жадности элемента .*.
Однако, если после квантификатора идёт знак вопроса, он перестает быть жадным
и совпадает минимально возможное количество раз, поэтому патэрн
/\*.*?\*/
верно выполняется с C-комментариями. Значение различных других квантификаторов
не изменится, только предпочтительное количество совпадений. Не путайте это
использование знака вопроса с его использованием в качестве собственно квантификатора.
Поскольку он может использоваться двояко, они иногда может появляться удвоенным:
\d??\d
что совпадает с одной цифрой, по преимуществу, но может совпадать и с двумя,
если это единственный способ совпадения оставшейся части патэрна.
Если установлена опция PCRE_UNGREEDY (отсутствующая в Perl), то квантификаторы не жадничают по умолчанию, но отдельные могут быть жадными, если после них стоит знак вопроса. Другими словами, знак вопроса инвертирует поведение по умолчанию.
| |