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";
?>