LDAP ldap_modify_batch
(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0, PHP 7, PHP 8)
ldap_modify_batch — LDAP 항목에 대한 수정 일괄 처리 및 실행
설명
ldap_modify_batch( LDAP\Connection $ldap, string $dn, array $modifications_info, ?array $controls = null ): bool
LDAP 디렉토리의 기존 항목을 수정합니다. 수행할 수정 사항의 세부 사양을 허용합니다.
매개변수
ldap
- ldap_connect()에 의해 반환된 LDAP\Connection 인스턴스입니다.
dn
- LDAP 엔티티의 고유 이름입니다.
modifications_info
- 수정할 사항을 지정하는 배열입니다. 이 배열의 각 항목은 두 개 또는 세 개의 키가 있는 연관 배열입니다. attrib는 수정할 속성의 이름에 매핑되고, modtype은 수행할 수정 유형에 매핑되며, 값은 (수정 유형에 따라) 배열에 매핑됩니다. 수정과 관련된 속성 값.
modtype에 가능한 값은 다음과 같습니다.
LDAP_MODIFY_BATCH_ADD
values
를 통해 지정된 각 값은attrib
에 의해 명명된 속성에 추가 값으로 추가됩니다.LDAP_MODIFY_BATCH_REMOVE
values
를 통해 지정된 각 값은attrib
로 명명된 속성에서 제거됩니다.values
배열에 포함되지 않은 속성 값은 그대로 유지됩니다.LDAP_MODIFY_BATCH_REMOVE_ALL
attrib
에 의해 명명된 속성에서 모든 값이 제거됩니다.values
항목을 제공하면 안 됩니다.LDAP_MODIFY_BATCH_REPLACE
attrib
에 의해 명명된 속성의 모든 현재 값은values
을 통해 지정된 값으로 대체됩니다.
attrib
의 모든 값은 문자열이어야 하고,values
의 모든 값은 문자열의 배열이어야 하며,modtype
의 모든 값은 위에 나열된 LDAP_MODIFY_BATCH_* 상수 중 하나여야 합니다. controls
- 요청과 함께 보낼 LDAP 컨트롤의 배열입니다.
반환 값
성공하면 true
를, 실패하면 false
를 반환합니다.
변경 로그
버전 | 설명 |
---|---|
8.1.0 | ldap 매개변수는 이제 LDAP\Connection 인스턴스를 예상합니다. 이전에는 리소스가 필요했습니다. |
8.0.0 | controls 은 이제 nullable입니다. 이전에는 []로 기본 설정되었습니다. |
7.3.0 | controls 지원 추가됨 |
Examples
예제 #1 연락처에 전화번호 추가
<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "telephoneNumber",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => ["+1 555 555 1717"],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>
예제 #2 사용자 이름 바꾸기
<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "sn",
"modtype" => LDAP_MODIFY_BATCH_REPLACE,
"values" => ["Smith-Jones"],
],
[
"attrib" => "givenName",
"modtype" => LDAP_MODIFY_BATCH_REPLACE,
"values" => ["Jack"],
],
];
ldap_modify_batch($connection, $dn, $modifs);
ldap_rename($connection, $dn, "cn=Jack Smith-Jones", NULL, TRUE);
?>
예제 #3 사용자에게 두 개의 이메일 주소 추가
<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "mail",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => [
"jack.smith@example.com",
"jack.smith-jones@example.com",
],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>
예제 #4 사용자 비밀번호 변경
<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "userPassword",
"modtype" => LDAP_MODIFY_BATCH_REMOVE,
"values" => ["Tr0ub4dor&3"],
],
[
"attrib" => "userPassword",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => ["correct horse battery staple"],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>
예제 #5 사용자 암호 변경(Active Directory)
<?php
function adifyPw($pw)
{
return iconv("UTF-8", "UTF-16LE", '"' . $pw . '"');
}
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=ad,dc=example,dc=com";
$modifs = [
[
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_REMOVE,
"values" => [adifyPw("Tr0ub4dor&3")],
],
[
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => [adifyPw("correct horse battery staple")],
],
];
ldap_modify_batch($connection, $dn, $modifs);