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);