ldap_modify_batch

(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0, PHP 7)

ldap_modify_batchФормирования и запуск пакетного изменения записи LDAP

Описание

ldap_modify_batch ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : bool

Модифицирует существующую запись в каталоге LDAP. Допустимо детальное описание модификации.

Список параметров

link_identifier

Идентификатор соединения LDAP, возвращенный ldap_connect().

dn

Характерное имя объекта LDAP.

entry

Массив, описывающий необходимую модификацию. Каждая запись этого массива представляет собой ассоциативный массив с двумя или тремя ключами: attrib задает имя аттрибута для изменения, modtype задает тип модификации и (в зависимости от типа модификации) values задает массив значений аттрибутов, соответствующий данной модификации.

Допустимые значения для 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_*, перечисленных выше.

serverctrls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия Описание
7.3 Добавлена поддержка параметра serverctrls

Примеры

Пример #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"NULLTRUE);
?>

Пример #3 Добавление пользователю двух e-mail адресов

<?php
$dn 
"cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        
"attrib"  => "mail",
        
"modtype" => LDAP_MODIFY_BATCH_ADD,
        
"values"  => [
            
"[email protected]",
            
"[email protected]",
        ],
    ],
];
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);