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

dbmopen

(PHP 3, PHP 4)

dbmopen - открывает DBM-БД.

Описание

resource dbmopen (string filename, string flags)

Первый аргумент это полный путь к открываемому DBM-файлу, а второй - это режим открытия файла, который может иметь значения "r", "n", "c" или "w" для режимов read-only, new (подразумевает read-write и, вероятнее всего, будет усекать уже имеющуюся БД с тем же именем), create (подразумевает read-write и не будет усекать уже имеющуюся БД с тем же именем) и read-write, соответственно.

Возвращает идентификатор, передаваемый другим DBM-функциям при успехе, или FALSE при - неудаче.

Если используется поддержка NDBM, то NDBM создаст файлы filename.dir и filename.pag.
GDBM использует только один файл, так как имеет внутреннюю поддержку flat-файлов, а Berkeley DB создаёт файл filename.db. Заметьте, что PHP выполняет свою собственную блокировку файлов, что может быть сделано и самой библиотекой DBM. PHP не удаляет .lck-файлы, создаваемые ею. Он использует эти файлы просто как фиксированные inodes, в которых выполняется блокировка файлов. Дополнительно о DBM-файлах см. страницы man Unix или получите GNU's GDBM.

Примечание: если safe mode включён, PHP проверяет, имеют ли файл(ы)/директории, с которыми вы намереваетесь работать, тот же UID, что и выполняемый скрипт.

Вариант 4: разборщик PHP вне дерева web

Очень надёжной опцией является помещение исполняемого файла разборщика PHP где-нибудь вне дерева файлов web. В /usr/local/bin, например. Единственным недостатком этой опции является то, что вы теперь должны помещать строку вроде следующей:

#!/usr/local/bin/php

как первую строку любого файла, содержащего тэги PHP. Вы также должны сделать файл исполняемым. То есть рассматривать его так же, как любой другой CGI-скрипт, написанный на Perl или sh или любом другом языке скриптинга, который использует механизм замены #! оболочки для запуска самого себя.

Чтобы PHP корректно обрабатывал информацию PATH_INFO и PATH_TRANSLATED при такой установке, разборщик РНР должен быть скомпилирован с опцией конфигурации --enable-discard-path.