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\Connection, который возвращает функция ldap_connect().

dn

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

modifications_info

Массив, описывающий необходимую модификацию. Каждая запись этого массива представляет собой ассоциативный массив с двумя или тремя ключами: 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_*, перечисленных выше.

controls

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

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

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

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

Версия Описание
8.1.0 Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 Добавлена поддержка параметра controls

Примеры

Пример #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 Добавление пользователю двух e-mail адресов

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

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top