LDAP ldap_search

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

ldap_search — LDAP 트리 검색


설명

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
                

LDAP_SCOPE_SUBTREE 범위의 디렉토리에서 지정된 필터에 대한 검색을 수행합니다. 이것은 전체 디렉토리를 검색하는 것과 같습니다.

병렬 검색을 수행하는 것도 가능합니다. 이 경우 첫 번째 인수는 단일 인스턴스가 아니라 LDAP\Connection 인스턴스의 배열이어야 합니다. 모든 검색에서 동일한 기본 DN과 필터를 사용하지 않아야 하는 경우 기본 DN 배열 및/또는 필터 배열을 대신 인수로 전달할 수 있습니다. 배열의 첫 번째 항목은 한 검색에 사용되고 두 번째 항목은 다른 검색에 사용되는 식이므로 이러한 배열은 LDAP\Connection 인스턴스 배열과 크기가 같아야 합니다. 병렬 검색을 수행하면 반환 값이 false인 오류의 경우를 제외하고 LDAP\Result 인스턴스의 배열이 반환됩니다.


매개변수

ldap
ldap_connect()에 의해 반환된 LDAP\Connection 인스턴스입니다.
base
디렉토리의 기본 DN입니다.
filter
검색 필터는 LDAP 문서에 설명된 형식의 부울 연산자를 사용하여 단순하거나 고급일 수 있습니다(필터에 대한 전체 정보는 » Netscape Directory SDK 또는 » RFC4515 참조).
attributes
필수 속성의 배열, 예: array("mail", "sn", "cn"). "dn"은 요청된 속성 유형에 관계없이 항상 반환됩니다.

이 매개변수를 사용하는 것이 기본 조치(모든 속성 및 연관된 값을 리턴하는 것)보다 훨씬 더 효율적입니다. 따라서 이 매개변수의 사용은 모범 사례로 간주되어야 합니다.

attributes_only
속성 유형만 원하는 경우 1로 설정해야 합니다. 0으로 설정하면 기본 동작인 속성 유형과 속성 값을 모두 가져옵니다.
sizelimit
가져온 항목 수를 제한할 수 있습니다. 이것을 0으로 설정하면 제한이 없음을 의미합니다.
메모:

이 매개변수는 서버 측 사전 설정 크기 제한을 재정의할 수 없습니다. 더 낮게 설정할 수 있습니다.

일부 디렉토리 서버 호스트는 사전 설정된 항목 수만 반환하도록 구성됩니다. 이 경우 서버는 부분적 결과 집합만 반환했음을 나타냅니다. 이 매개변수를 사용하여 페치된 항목 수를 제한하는 경우에도 발생합니다.

timelimit
검색에 소요되는 시간(초)을 설정합니다. 이것을 0으로 설정하면 제한이 없음을 의미합니다.

메모: 이 매개변수는 서버 측 사전 설정 시간 제한을 무시할 수 없습니다. 더 낮게 설정할 수 있습니다.

deref
검색 중에 별칭을 처리하는 방법을 지정합니다. 다음 중 하나일 수 있습니다.
  • LDAP_DEREF_NEVER - (기본값) 별칭은 역참조되지 않습니다.
  • LDAP_DEREF_SEARCHING - 별칭은 검색 중에 역참조되어야 하지만 검색의 기본 개체를 찾을 때는 그렇지 않습니다.
  • LDAP_DEREF_FINDING - 별칭은 기본 개체를 찾을 때 역참조되어야 하지만 검색 중에는 참조하지 않아야 합니다.
  • LDAP_DEREF_ALWAYS - 별칭은 항상 역참조되어야 합니다.
controls
요청과 함께 보낼 LDAP Controls의 배열입니다.

반환 값

LDAP\Result 인스턴스, LDAP\Result 인스턴스의 배열을 반환하거나 실패 시 false를 반환합니다.


변경 로그

버전 설명
8.1.0 ldap 매개변수는 이제 LDAP\Connection 인스턴스를 예상합니다. 이전에는 리소스가 필요했습니다.
8.1.0 지금 LDAP\Result 인스턴스를 반환합니다. 이전에는 리소스가 반환되었습니다.
8.0.0 controls은 이제 nullable입니다. 이전에는 []로 기본 설정되었습니다.
7.3.0 controls 지원 추가됨

Examples

아래 예는 "My Company"의 모든 사람에 대한 조직 단위, 성, 이름 및 이메일 주소를 검색합니다. 여기서 성 또는 이름에 하위 문자열 $person이 포함됩니다. 이 예에서는 부울 필터를 사용하여 서버에 둘 이상의 속성에서 정보를 찾도록 지시합니다.

예제 #1 LDAP search

                  
<?php
// $ds is a valid LDAP\Connection instance for a directory server

// $person is all or part of a person's name, eg "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"]." entries returned\n";
?>