Progress28.ru

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ldap search php

Ldap search php

(PHP 3, PHP 4, PHP 5)

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. Это эквивалентно поиску по всей директории.
base_dn специфицирует базовый DN для директории.

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

Четвёртый параметр является стандартным строковым PHP-массивом из требуемых атрибутов, например, array(«mail»,»sn»,»cn»). Заметьте, что «dn» возвращается всегда, вне зависимости от того, атрибуты каких типов запрошены.

Отметьте, также, что некоторые хосты серверов директорий будут конфигурированы таким образом, чтобы возвращать не более предустановленного количества вхождений. Если это так, сервер укажет, что он возвращает только частичный результирующий набор. Это проявится также в том случае, если шестой параметр sizelimit использован для ограничения подсчёта извлечённых вхождений.

Пятый параметр attrsonly должен иметь значение 1, если нужны только типы атрибутов. Если установлен в 0, и типы, и значения атрибутов извлекаются — это поведение по умолчанию.

С помощью шестого параметра sizelimit возможно ограничить подсчёт извлечённых вхождений. Значение 0 означает — нет ограничений. ПРИМЕЧАНИЕ: этот параметр НЕ может переопределить серверную установку sizelimit. Но вы можете установить его ниже.

Седьмой параметр timelimit устанавливает количество секунд, отводимых для поиска. Установка 0 означает отсутствие ограничения. ПРИМЕЧАНИЕ: этот параметр НЕ может переопределить серверную установку timelimit. Но вы можете установить его ниже.

Восьмой параметр deref специфицирует, как псевдонимы должны обрабатываться при поиске. Может иметь одно из следующих значений:


Читать еще:  Php trim string

LDAP_DEREF_NEVER — (по умолчанию) псевдонимы никогда не разыменовываются.

LDAP_DEREF_SEARCHING — псевдонимы должны разыменовываться в процессе поиска, но не разыменовываются при локализации базового объекта поиска.

LDAP_DEREF_FINDING — псевдонимы должны разыменовываться при локализации базового объекта, но не в процессе поиска.

LDAP_DEREF_ALWAYS — псевдонимы должны разыменовываться всегда.

Примечание: следующие необязательные параметры были введены в 4.0.2: attrsonly , sizelimit , timelimit , deref .

Фильтр поиска может быть простым или продвинутым, с использованием булевых операций в формате, описанном в документации LDAP (см. в Netscape Directory SDK полную информацию о фильтрах).

В примере запрашиваются подразделение организации, фамилия, имя и email-адрес всех работников компании «My Company», где фамилия или имя содержит подстроку $person. В этом примере используется булев фильтр для сообщения серверу о поиске информации в более чем одном атрибуте.

Пример 1. LDAP-поиск

Начиная с 4.0.5, можно проводить также параллельные поиски. Для этого используйте массив идентификаторов ссылок, а не просто одиночный идентификатор, в качестве первого аргумента. Если вам не нужен одно и то же базовое DN и тот же фильтр для всех поисков, вы можете также использовать массив базовых DNs и/или массив фильтров. Эти массивы обязаны быть того же размера, что и массив идентификаторов ссылок, поскольку первые вхождения массивов используются для первого поиска, вторые вхождения — для второго, и так далее. При выполнении параллельных поисков возвращается массив идентификаторов результатов поисков, если только не было ошибки — тогда вхождение, соответствующее поиску, будет FALSE . Это очень напоминает нормально возвращённое значение, но идентификатор результата всегда возвращается, если поиск был выполнен. В редких случаях нормальный поиск возвращает FALSE , в то врем как параллельный поиск возвращает идентификатор.

ldap_search — Поиск по LDAP дереву

(PHP 4, PHP 5, PHP 7)

ldap_search — Поиск по LDAP дереву

Описание

Выполняет поиск для указанного фильтра в директории с границами LDAP_SCOPE_SUBTREE . Эквивалентно поиску по всему каталогу.

Начиная с 4.0.5 также возможно производить параллельный поиск. Чтобы это сделать , необходимо использовать в качестве первого параметра массив идентификаторов ссылок, а не единственный идентификатор. Если необходимости использовать то же самое основное DN и тот же самый фильтр для всех поисков нет, то можно использовать массив базовых DN и/или массив фильтров. Эти массивы должны иметь такой же размер, как и массив идентификаторов ссылок, так как первые записи массивов используются для одного поиска, вторые записи используются для другого и так далее. При выполнении параллельного поиска возвращается массив идентификаторов результатов поиска, кроме ошибочных случаев, тогда запись, соответствующая поиску, будет равна FALSE . Это похоже на обычный поиск, когда возвращается значение, за исключением того, что идентификатор результата всегда возвращается после проведения поиска. Есть некоторые редкие случаи, куда обычный поиск возвращает FALSE , в то время как параллельный поиск возвращает идентификатор.

Список параметров

Идентификатор ссылки LDAP, возвращенный ldap_connect() .

Базовое DN для каталога.

Поисковый фильтр может быть простым или расширенным, используя булевы операторы в формате, описанном в документации LDAP (см. » Netscape Directory SDK для полной информации о фильтрах).

Массив необходимых атрибутов, например, array(«mail», «sn», «cn»). Обратите внимание, что «dn» всегда возвращается, независимо от того, какие типы атрибутов требуются.

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

Должен быть равен 1, если требуются типы атрибута. Если равен 0, то, по умолчанию, выбираются и типы атрибутов и значения.

Позволяет ограничить количество выбранных записей. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдет, то сервер укажет, что только возвратил частичный набор результатов. Это также происходит, если Вы используете этот параметр, чтобы ограничить количество выбранных записей.

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

Определяет как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER — (по умолчанию) псевдонимы никогда не разыменовываются.
  • LDAP_DEREF_SEARCHING — псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING — псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS — псевдонимы должны всегда разыменовываться.

Возвращаемые значения

Возвращает идентификатор результата поиска или FALSE в случае ошибки.

Примеры

Пример ниже получает организационную единицу, фамилию, имя и адрес электронной почты для всех людей в «My Company», где фамилия или имя содержат подстроку $person . Этот пример использует логический фильтр, чтобы сказать серверу, что нужно искать информацию больше, чем в одном атрибуте.

Пример #1 LDAP поиск

// $ds верный идентификатор ссылки на сервер директории

// $person всё или часть имени человека, н-р «Jo»

$dn = «o=My Company, c=US» ;
$filter = «(|(sn= $person *)(givenname= $person *))» ;
$justthese = array( «ou» , «sn» , «givenname» , «mail» );

$sr = ldap_search ( $ds , $dn , $filter , $justthese );

$info = ldap_get_entries ( $ds , $sr );

echo $info [ «count» ]. » записей возвращеноn» ;
?>

Ссылка на основную публикацию
Adblock
detector