(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
,$dn
,$modifications_info
,$controls
= null
Функция модифицирует существующую запись в каталоге 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);
?>