Le test suivant est faux :
if($info[$i]["initials"][0] <> 'NONE')
L'opérateur logique différent n'existe pas sous la forme <> (SQL ?), en PHP il s'agit de != voir !== si le type de la variable intervient.
Ensuite, la concaténation sur le premier paramètre de strstr est strictement inutile :
strtr(''.$info[$i]["initials"][0].'',
A remplacer par :
strtr($info[$i]["initials"][0],
Revenons à la question maintenant : pourquoi il n'y a pas transformation des caractères accentués ? Parce que je pense qu'il faut appliquer utf8_decode avant d'utiliser la fonction strstr, exemple :
$Nom=strtr(utf8_decode($info[$i]["sn"][0]),'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
Notez que les chaînes LDAP utilisent l'encodage UTF-8 et qu'il vous est tout à fait possible d'utiliser celui-ci avec MySQL (version 4.0 et supérieure si je ne m'abuse).
Julp.
Partager