(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 — Agrupa modificaciones y las ejecuta en una entrada LDAP
$ldap,$dn,$modifications_info,$controls = nullModifica una entrada existente en un directorio LDAP. Permite especificar de manera detallada las modificaciones a realizar.
ldapUn recurso LDAP, devuelto por la función ldap_connect().
dnEl nombre único de la entrada LDAP.
modifications_info
Un array que especifica las modificaciones a realizar. Cada entrada
de este array es un array asociativo que contiene dos o tres claves:
attrib corresponde al nombre del atributo a modificar,
modtype corresponde al tipo de modificación a realizar,
y (según el tipo de modificación) values corresponde
a un array de valores de atributo correspondiente a la modificación.
Los valores posibles para modtype son:
LDAP_MODIFY_BATCH_ADD
Cada valor especificado mediante values se añade
(como valor adicional) al atributo nombrado por attrib.
LDAP_MODIFY_BATCH_REMOVE
Cada valor especificado mediante values se elimina
del atributo nombrado por attrib. Todos los
valores del atributo que no estén presentes en el array
values permanecerán sin cambios.
LDAP_MODIFY_BATCH_REMOVE_ALL
Todos los valores se eliminan del atributo nombrado por
attrib. No es necesario proporcionar una entrada values.
LDAP_MODIFY_BATCH_REPLACE
Todos los valores actuales del atributo nombrado por
attrib se reemplazan con los valores
especificados mediante el array values.
Tenga en cuenta que todos los valores de attrib deben ser
strings, todos los valores de values
deben ser un array de strings, y todos los valores
de modtype deben ser una de las constantes
LDAP_MODIFY_BATCH_*.
controlsArray de Controles LDAP a enviar con la petición.
| Versión | Descripción |
|---|---|
| 8.1.0 |
The ldap parameter expects an LDAP\Connection
instance now; previously, a valid ldap link resource was expected.
|
| 8.0.0 |
controls is nullable now; previously, it defaulted to [].
|
| 7.3.0 |
Se ha añadido soporte para controls.
|
Ejemplo #1 Añadir un número de teléfono a un contacto
<?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);
?>Ejemplo #2 Renombrar un usuario
<?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);
?>Ejemplo #3 Añadir dos direcciones de correo electrónico a un usuario
<?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);
?>Ejemplo #4 Modificar la contraseña de un usuario
<?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);
?>Ejemplo #5 Modificar la contraseña de un usuario (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);