ldap_search(PHP 3, PHP 4) ldap_search - ищет дерево LDAP. Описаниеresource ldap_search (resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]]) Возвращает идентификатор результата поиска, FALSE при ошибке. ldap_search() выполняет поиск специфицированного фильтра в директории
с областью видимости LDAP_SCOPE_SUBTREE. Это эквивалентно поиску по всей
директории. Имеется необязательный четвёртый параметр, который можно добавлять для ограничения атрибутов и значений, возвращаемых сервером, только теми, которые необходимы. Это более эффективно, чем акция по умолчанию (которая возвращает все атрибуты и их ассоциированные значения). Использование четвёртого параметра поэтому следует приветствовать. Четвёртый параметр является стандартным строковым PHP-массивом из требуемых атрибутов, например, array("mail","sn","cn"). Заметьте, что "dn" возвращается всегда, вне зависимости от того, атрибуты каких типов запрошены. Отметьте, также, что некоторые хосты серверов директорий будут сконфигурированы таким образом, чтобы возвращать не более предустановленного количества вхождений. Если это так, сервер укажет, что он возвращает только частичный результирующий набор. Это проявится также в том случае, если шестой параметр sizelimit использован для ограничения подсчёта извлечённых вхождений. Пятый параметр attrsonly должен иметь значение 1, если нужны только типы атрибутов. Если установлен в 0, - и типы, и значения атрибутов извлекаются. Это поведение по умолчанию. С помощью шестого параметра sizelimit можно ограничить подсчёт извлечённых вхождений. Значение 0 означает - нет ограничений. ПРИМЕЧАНИЕ: этот параметр НЕ может переопределить серверную установку sizelimit. Но вы можете установить его ниже. Седьмой параметр timelimit устанавливает количество секунд, отводимых для поиска. Установка 0 означает отсутствие ограничения. ПРИМЕЧАНИЕ: этот параметр НЕ может переопределить серверную установку timelimit. Но вы можете установить его ниже. Восьмой параметр deref специфицирует, как псевдонимы должны обрабатываться при поиске. Может иметь одно из следующих значений:
Фильтр поиска может быть простым или продвинутым, с использованием булевых операций в формате, описанном в документации LDAP (см. в Netscape Directory SDK полную информацию о фильтрах). В примере запрашиваются подразделение организации, фамилия, имя и email-адрес всех работников компании "My Company", где фамилия или имя содержит подстроку $person. В этом примере используется булев фильтр для сообщения серверу о поиске информации в более чем одном атрибуте. Начиная с 4.0.5, можно проводить также параллельные поиски. Для этого используйте массив идентификаторов ссылок, а не просто одиночный идентификатор, в качестве первого аргумента. Если вам не нужен одно и то же базовое DN и тот же фильтр для всех поисков, вы можете также использовать массив базовых DNs и/или массив фильтров. Эти массивы обязаны быть того же размера, что и массив идентификаторов ссылок, поскольку первые вхождения массивов используются для первого поиска, вторые вхождения - для второго, и так далее. При выполнении параллельных поисков возвращается массив идентификаторов результатов поисков, если только не было ошибки - тогда вхождение, соответствующее поиску, будет FALSE. Это очень напоминает нормально возвращённое значение, но идентификатор результата всегда возвращается, если поиск был выполнен. В редких случаях нормальный поиск возвращает FALSE, в то врем как параллельный поиск возвращает идентификатор. |
||||||||||
|
||||||||||
PHP-GTK это решение PHP для написания клиентских GUI-приложений. Andrei Zmievski рассказывает о процессе создания и планирования PHP-GTK
GUI-программирование всегда представляло для меня особый интерес, и я обнаружил, что Gtk+ это прекрасный набор утилит, исключая то, что программирование в нём на C - процесс довольно утомительный. После появления реализаций PyGtk и GTK-Perl я решил проверить, можно ли сделать PHP интерфейсом для Gtk+, хотя бы минимально. Начиная с августа 2000 года, у меня появилось больше свободного времени, и я приступил к экспериментам. Основой стала реализация PyGtk, поскольку представляла собой достаточно полный комплект и имела прекрасный объектно-ориентированный интерфейс. James Henstridge, автор PyGtk, давал прекрасные советы на этом первом этапе. Основы электротехники выполнение курсовой работы Комплексную амплитуду тока четвертой гармоники определим закону Ома:
- Таблица основных интегралов. Вычислить интеграл
Запись интерфейсов для всех функций Gtk+ была непосильной задачей, поэтому я решил создать генератор кода аналогично тому, как это сделано в PyGtk. Кодовый генератор это PHP-программа, которая читает набор .defs-файла, содержащий информацию о классах, константах и методах Gtk+ и генерирует C-код, который связывает PHP с ним. То, что не может быть сгенерировано автоматически, может быть записано вручную в файле .overrides.
Работа над кодовым генератором и инфраструктурой заняла некоторое время, поскольку я не мог тратить много времени на PHP-GTK в конце 2000. После того как я показал PHP-GTK Frank'у Kromann'у, он заинтересовался и начал помогать мне в работе на кодовым генератором и реализацией для Win32. Когда мы написали первую программу Hello World и она заработала, это было прекрасно. Ещё пара месяцев ушла на то, чтобы довести проект до приемлемых кондиций, и начальная версия появилась в 1 марта 2001 года. История слегка напоминает SlashDot.
Поняв, что PHP-GTK может стать достаточно объёмным, я выделил для него отдельные списки рассылки и хранилища CVS, а также web-сайт gtk.php.net, с помощью Colin'а Viebrock'а. Нужна была также документация, и James Moore помог в этом.
После появления релиза, PHP-GTK начал завоёвывать популярность. У нас есть собственная команда по работе над документацией, люди начинают писать расширения для PHP-GTK и всё более и более впечатляющие приложения на нём.
| |