(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 — Mets en lot des modifications et les exécute sur une entrée LDAP
$ldap,$dn,$modifications_info,$controls = nullModifie une entrée existante dans un dossier LDAP. Permet de spécifier de façon détaillée les modifications à effectuer.
ldapUne ressource LDAP, retourné par la fonction ldap_connect().
dnLe nom unique de l'entrée LDAP.
modifications_info
       Un tableau qui spécifie les modifications à réaliser. Chaque entrée
       de ce tableau est un tableau associatif contenant deux ou trois clés :
       attrib correspond au nom de l'attribut à modifier,
       modtype correspond au type de modification à réaliser,
       et (suivant le type de modification) values correspond
       à un tableau de valeurs d'attribut correspondant à la modification.
      
       Les valeurs possibles pour modtype sont :
       
LDAP_MODIFY_BATCH_ADD
           Chaque valeur spécifiée via values est ajoutée
           (comme valeur additionnelle) à l'attribut nommé par attrib.
          
LDAP_MODIFY_BATCH_REMOVE
           Chaque valeur spécifiée via values est supprimée
           depuis l'attribut nommée par attrib. Toutes les
           valeurs de l'attribut n'étant pas présentes dans le tableau
           values demeureront inchangées.
          
LDAP_MODIFY_BATCH_REMOVE_ALL
           Toutes les valeurs sont supprimées depuis l'attribut nommé par
           attrib. Une entrée values
           n'a pas besoin d'être fournie.
          
LDAP_MODIFY_BATCH_REPLACE
           Toutes les valeurs courantes de l'attribut nommé par
           attrib sont remplacées avec les valeurs
           spécifiées via le tableau values.
          
       Notez que toutes les valeurs de attrib doivent être
       des chaînes de caractères, toutes les valeurs de values
       doivent être un tableau de chaînes de caractères, et toutes les valeurs
       de modtype doivent être une des constantes
       LDAP_MODIFY_BATCH_*.
      
controlsTableau de Contrôles LDAP à envoyer avec la requête.
   Cette fonction retourne true en cas de succès ou false si une erreur survient.
  
| Version | Description | 
|---|---|
| 8.1.0 | Le paramètre ldapattend désormais une instance de
  LDAP\Connection ; auparavant, une ressourceldap linkétait attendue. | 
| 8.0.0 | controlsest désormais nullable ; auparavant, sa valeur par défaut était[]. | 
| 7.3.0 | Support pour controlsa été ajouté. | 
Exemple #1 Ajout d'un numéro de téléphone à un contact
<?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);
?>
Exemple #2 Renomme un utilisateur
<?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);
?>
Exemple #3 Ajoute deux adresses emails à un utilisateur
<?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);
?>
Exemple #4 Modifie le mot de passe d'un utilisateur
<?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);
?>
Exemple #5 Modifie le mot de passe d'un utilisateur (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);