(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 ldapparameter expects an LDAP\Connection
  instance now; previously, a validldap linkresource was expected. | 
| 8.0.0 | controlsis 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);