Descripción
int
ldap_search ( int identificador_de_conexion, string dn_base, string filtro [, array atributos])
Devuelve un identificador de resultado de búsqueda o falso en caso de error.
ldap_search() realiza la búsqueda según el filtro
especificado con alcance LDAP_SCOPE_SUBTREE. Esto es equivalente a
buscar en el directorio entero. dn_base
especifica el DN base para el directorio.
Existe un cuarto parámetro opcional que puede ser añadido
para restringir los atributos y valores devueltos por el
servidor a sólo los requeridos. Es mucho más eficiente que la
acción por defecto (que devolverá todos los atributos y sus
valores asociados). El uso del cuarto parámetro debe ser por
tanto considerado una práctica recomendable.
El cuerto parámetro es un array estándar de PHP con los atributos
requeridos, por ejemplo array("email","sn","cn"). Nota: "dn" siempre es
devuelto independientemente de que tipos de atributos sean
solicitados.
También es necesario resaltar que algunos servidores de directorio
están configurados para devolver un cierto número de entradas como
máximo. Si esto ocurre, el servidor indicará que solo devuelve
un conjunto de resultados parcial.
El filtro de búsqueda puede ser simple o avanzado, usando
operadores booleanos en el formato descrito en la documentación
sobre LDAP (Consulte el Netscape Directory SDK
para obtener completa información sobre filtros).
El ejemplo de abajo recupera la unidad organizativa (ou), apellidos
nombre común y dirección de email para todas las personas de
"Mi Compañía" donde los apellidos o el nombre común contiene la
subcadena $persona. Este ejemplo usa un filtro booleano para
indicar al servidor que busque la información en más de un atributo.
Ejemplo 1. Búsqueda LDAP // $ds es un identificador de conexión válido
// $persona es todo o parte del nombre de una persona, por ejemplo "Pe"
$dn = "o=Mi Compañía, c=ES";
$filtro="(|(sn=$persona*)(givenname=$persona*))";
$solonecesito = array( "ou", "sn", "givenname", "mail");
$sr=ldap_search($ds, $dn, $filtro, $solonecesito);
$info = ldap_get_entries($ds, $sr);
print $info["count"]." entradas devueltas<p>"; |
|