Files
php-doc-ru/reference/ldap/functions/ldap-search.xml
2024-03-14 19:11:48 +03:00

258 lines
11 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b7cbd468cb4c46d55d43a44cade0eb4590d25dea Maintainer: bfl Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.ldap-search" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>ldap_search</refname>
<refpurpose>Выполняет поиск по LDAP-дереву</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>LDAP\Result</type><type>array</type><type>false</type></type><methodname>ldap_search</methodname>
<methodparam><type class="union"><type>LDAP\Connection</type><type>array</type></type><parameter>ldap</parameter></methodparam>
<methodparam><type class="union"><type>array</type><type>string</type></type><parameter>base</parameter></methodparam>
<methodparam><type class="union"><type>array</type><type>string</type></type><parameter>filter</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>attributes</parameter><initializer>[]</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>attributes_only</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>sizelimit</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>timelimit</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>deref</parameter><initializer><constant>LDAP_DEREF_NEVER</constant></initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>array</type><type>null</type></type><parameter>controls</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Функция выполняет поиск для заданного фильтра в каталоге
с областью действия <constant>LDAP_SCOPE_SUBTREE</constant>.
Эквивалентно поиску по всему каталогу.
</para>
&ldap.return-result-array-info;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>ldap</parameter></term>
<listitem>
<para>
&ldap.parameter.ldap;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>base</parameter></term>
<listitem>
<para>
Базовое DN для каталога.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>filter</parameter></term>
<listitem>
<para>
Поисковый фильтр может быть простым или расширенным, используя логические
операторы в формате, описанном в документации LDAP
(смотрите <link xlink:href="&url.ldap.filters;">Netscape Directory SDK</link> или
<link xlink:href="&url.rfc;4515">RFC4515</link> для полной информации о фильтрах).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>attributes</parameter></term>
<listitem>
<para>
Массив необходимых атрибутов, например, <literal>array("mail", "sn", "cn")</literal>.
Обратите внимание, что "dn" всегда возвращается, независимо от того,
какие типы атрибутов требуются.
</para>
<para>
Использование этого параметра намного более эффективно, чем действие по умолчанию
(которое должно возвратить все атрибуты и присвоенные им значения).
Поэтому использование этого параметра считается хорошей практикой.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>attributes_only</parameter></term>
<listitem>
<para>
Должен быть равен 1, если требуются только типы атрибута.
Если равен 0, то, по умолчанию, выбираются и типы атрибутов и значения.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>sizelimit</parameter></term>
<listitem>
<para>
Позволяет ограничить количество выбранных записей. Установка этого параметра
равным 0 означает, что ограничение отсутствует.
</para>
<note>
<para>
Этот параметр НЕ может переопределять предустановку sizelimit на стороне
сервера. Хотя его можно установить ниже.
</para>
<para>
Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы
возвратить не больше, чем предварительно установленное число записей.
Если это произойдёт, то сервер укажет, что возвратил только частичный набор
результатов. Это также происходит, если Вы используете этот параметр чтобы
ограничить количество выбранных записей.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>timelimit</parameter></term>
<listitem>
<para>
Устанавливает число секунд, ограничивающее процесс поиска. Установка этого
параметра равным 0 означает, что ограничение отсутствует.
</para>
<note>
<para>
Этот параметр НЕ может переопределять предустановку timelimit на стороне
сервера. Хотя его можно установить ниже.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>deref</parameter></term>
<listitem>
<para>
Определяет как псевдонимы должны быть обработаны во время поиска. Может быть
одним из следующих:
<itemizedlist>
<listitem>
<simpara>
<constant>LDAP_DEREF_NEVER</constant> — (по умолчанию) псевдонимы никогда не разыменовываются.
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LDAP_DEREF_SEARCHING</constant> — псевдонимы должны быть разыменованы во время поиска,
но не при определении местоположения базового объекта поиска.
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LDAP_DEREF_FINDING</constant> — псевдонимы должны быть разыменованы
при определении местоположения базового объекта, но не во время поиска.
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LDAP_DEREF_ALWAYS</constant> — псевдонимы должны разыменовываться всегда.
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>controls</parameter></term>
<listitem>
<para>
Массив <link linkend="ldap.controls">управляющих объектов протокола LDAP</link> для отправки в запросе.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&ldap.return-result-array;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&ldap.changelog.ldap-object;
&ldap.changelog.return-result-object;
&ldap.changelog.controls-nullable;
<row>
<entry>7.3.0</entry>
<entry>
Добавлена поддержка параметра <parameter>controls</parameter>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
Пример ниже получает организационную единицу, фамилию, имя и адрес
электронной почты для всех людей в My Company, где фамилия или имя содержат
подстроку <varname>$person</varname>. Этот пример использует логический фильтр,
чтобы сказать серверу, что нужно искать информацию больше, чем в одном атрибуте.
<example>
<title>LDAP поиск</title>
<programlisting role="php">
<![CDATA[
<?php
// $ds допустимый экземпляр класса LDAP\Connection
// Переменная $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";
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->