(PHP 4, PHP 5, PHP 7, PHP 8)
ldap_list — Búsqueda en un nivel
$ldap,$base,$filter,$attributes = [],$attributes_only = 0,$sizelimit = -1,$timelimit = -1,$deref = LDAP_DEREF_NEVER,$controls = null
Realiza una búsqueda con el filtro filter
en el directorio base_dn con la opción
LDAP_SCOPE_ONELEVEL.
LDAP_SCOPE_ONELEVEL indica que la búsqueda
solo puede devolver entradas en el nivel inmediatamente
inferior al nivel base (equivalente al comando ls,
para obtener la lista de archivos y directorios del directorio actual).
También es posible realizar búsquedas en paralelo. En este caso, el primer argumento debe ser un array de
instancias de LDAP\Connection, en lugar de una sola.
Si las búsquedas no deben utilizar todas el mismo DN base y filtro, se puede pasar un array de DN base y/o un array de filtros como argumentos.
Estos arrays deben tener el mismo tamaño que el array de instancias de LDAP\Connection,
ya que las primeras entradas de los arrays se utilizan para una búsqueda, las segundas entradas para otra, y así sucesivamente.
Al realizar búsquedas en paralelo, se devuelve un array de instancias de LDAP\Result, excepto en caso de error, donde el valor de retorno será false.
ldapUna instancia de LDAP\Connection, devuelta por ldap_connect().
baseEl DN base del directorio.
filter
attributesUn 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 el comportamiento por defecto (que es devolver todos los atributos junto con sus valores asociados). Por esta razón, el uso de este argumento debe considerarse 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 servidores 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.
derefEspecifica 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.
controlsArray de Controles LDAP a enviar con la consulta.
Devuelve una instancia de LDAP\Result, un array de instancias de LDAP\Result, o false si ocurre un error.
| Versión | Descripción |
|---|---|
| 8.1.0 |
El parámetro ldap ahora espera una instancia de LDAP\Connection;
anteriormente, se esperaba un resource ldap link válido.
|
| 8.1.0 | Ahora devuelve una instancia de LDAP\Result; anteriormente, se devolvía un resource. |
| 8.0.0 |
controls ahora acepta null; anteriormente, su valor predeterminado era [].
|
| 7.3.0 |
Se añadió soporte para controls.
|
Ejemplo #1 Produce una lista de todos los servicios de una empresa
<?php
// $ds debe ser una instancia válida de LDAP\Connection
$basedn = "o=My Company, c=US";
$justthese = array("ou");
$sr = ldap_list($ds, $basedn, "ou=*", $justthese);
$info = ldap_get_entries($ds, $sr);
for ($i=0; $i < $info["count"]; $i++) {
echo $info[$i]["ou"][0];
}
?>