• « ldap_sasl_bind
  • ldap_set_option »
  • PHP Manual
  • LDAP Funciones
  • Búsqueda en el servidor LDAP

ldap_search

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_search — Búsqueda en el servidor LDAP

Descripción

ldap_search(
    LDAP\Connection|array $ldap,
    array|string $base,
    array|string $filter,
    array $attributes = [],
    int $attributes_only = 0,
    int $sizelimit = -1,
    int $timelimit = -1,
    int $deref = LDAP_DEREF_NEVER,
    ?array $controls = null
): LDAP\Result|array|false

Realiza una búsqueda con el filtro filter en el directorio base_dn con la configuración LDAP_SCOPE_SUBTREE. Es equivalente a una búsqueda en el directorio.

It is also possible to perform parallel searches. In this case, the first argument should be an array of LDAP\Connection instances, rather than a single one. If the searches should not all use the same base DN and filter, an array of base DNs and/or an array of filters can be passed as arguments instead. These arrays must be of the same size as the LDAP\Connection instances array, since the first entries of the arrays are used for one search, the second entries are used for another, and so on. When doing parallel searches an array of LDAP\Result instances is returned, except in case of error, when the return value will be false.

Parámetros

ldap

An LDAP\Connection instance, returned by ldap_connect().

base

La base DN para el directorio.

filter

El filtro de búsqueda puede ser simple o avanzado, y utilizar estos operadores booleanos en el formato descrito en la documentación LDAP (consultar » Netscape Directory SDK o » RFC4515 para más información sobre los filtros).

attributes

Un array de atributos requeridos, por ejemplo array("mail", "sn", "cn"). Tenga en cuenta que el "dn" siempre se devuelve, independientemente del tipo de atributo solicitado.

El uso de este argumento es más eficiente que la acción por defecto (que es devolver todos los atributos junto con sus valores asociados). El uso de este argumento debe considerarse por tanto una buena práctica.

attributes_only

Debe establecerse en 1 si solo se solicitan los tipos de atributos. Si se establece en 0, se recuperan los tipos y los valores de los atributos, lo que corresponde al comportamiento por defecto.

sizelimit

Permite limitar el número de entradas a recuperar. Establecer este argumento a 0 significa que no habrá límite.

Nota:

Este argumento no puede sobrescribir la configuración del lado del servidor. Sin embargo, puede establecerse un valor inferior.

Algunos directorios del servidor pueden estar configurados para devolver solo un número determinado de entradas. Si ocurre este comportamiento, el servidor indica que solo se ha devuelto un conjunto de resultados parcial. Este comportamiento también ocurre si se utiliza este argumento para limitar el número de entradas recuperadas.

timelimit

Define el número máximo de segundos permitidos para la búsqueda. Establecer este argumento a 0 significa que no hay límite.

Nota:

Este argumento no puede sobrescribir la configuración del lado del servidor pero puede utilizarse para ser más restrictivo.

deref

Especifica el número de alias que deben gestionarse durante la búsqueda. Puede ser uno de los siguientes:

  • LDAP_DEREF_NEVER - (por defecto) los alias nunca se desreferencian.
  • LDAP_DEREF_SEARCHING - los alias deben desreferenciarse durante la búsqueda pero no al localizar el objeto base de la búsqueda.
  • LDAP_DEREF_FINDING - los alias deben desreferenciarse al localizar el objeto base pero no durante la búsqueda.
  • LDAP_DEREF_ALWAYS - los alias siempre deben desreferenciarse.

controls

Array de Controles LDAP a enviar con la petición.

Valores devueltos

Returns an LDAP\Result instance, an array of LDAP\Result instances, o false en caso de error.

Historial de cambios

Versión Descripción
8.1.0 The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link recurso was expected.
8.1.0 Returns an LDAP\Result instance now; previously, a recurso was returned.
8.0.0 controls is nullable now; previously, it defaulted to [].
7.3.0 Se añadió soporte para controls.

Ejemplos

El ejemplo siguiente lee el nombre del servicio, el nombre, el apellido y el email de los empleados de la empresa "Mi Compañía", cuyo nombre o apellido contiene la subcadena: $person. Este ejemplo ilustra el uso de filtros para indicar al servidor que realice una búsqueda en dos atributos.

Ejemplo #1 Búsqueda LDAP

<?php
// $ds es una instancia válida de conexión LDAP\Connection para un servidor de directorio.

// $person es un nombre o parte de un nombre (por ejemplo, "Jean")

$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"]." entradas devueltas\n";
?>