Как сформировать ldap_search с кириллицей на php?

Для формирования поискового запроса ldap_search с кириллицей на PHP, необходимо учесть несколько моментов.

1. Установите правильные кодировки:
Перед тем, как выполнять ldap_search, убедитесь, что кодировки установлены правильно. Для работы с кириллицей на PHP рекомендуется использовать кодировку UTF-8. Можно установить ее с помощью функции mb_internal_encoding:

   mb_internal_encoding("UTF-8");

2. Обратите внимание на правильные настройки соединения с LDAP-сервером:
Для подключения к LDAP-серверу на PHP, вы должны использовать функцию ldap_connect(). При этом, установите опцию LDAP_OPT_PROTOCOL_VERSION равной 3, чтобы использовать протокол LDAP версии 3. Параметр "LDAP_OPT_REFERRALS" должен быть установлен в 0 для отключения рефералов ldap_search.

   $ldapconn = ldap_connect("ldap.example.com");
   ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
   ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

3. Создайте фильтр для поиска с кириллицей:
При формировании фильтра для ldap_search с кириллицей, необходимо учитывать, что символы кириллицы в фильтре должны быть в кодировке UTF-8. Для этого можно использовать функцию mb_convert_encoding:

   $filter = "(cn=" . mb_convert_encoding("Василий", "UTF-8") . ")";

4. Выполните ldap_search:
После подготовки правильного фильтра и параметров соединения, выполните ldap_search с использованием фильтра, базового днс (DN) и массива атрибутов:

   $basedn = "dc=example,dc=com";
   $attributes = array("cn", "email");
   $result = ldap_search($ldapconn, $basedn, $filter, $attributes);

5. Обработайте результаты поиска:
Получите результаты поиска с помощью функции ldap_get_entries и обработайте их соответствующим образом:

   $entries = ldap_get_entries($ldapconn, $result);
   for ($i = 0; $i < $entries["count"]; $i++) {
       $cn = $entries[$i]["cn"][0];
       $email = $entries[$i]["email"][0];
       echo "CN: " . $cn . " Email: " . $email . "<br />";
   }

Важно отметить, что конкретные настройки и параметры запроса ldap_search будут зависеть от вашей конкретной ситуации и структуры вашего LDAP-каталога. Убедитесь, что правильно настроили параметры подключения, фильтры и атрибуты перед выполнением ldap_search.