Для формирования поискового запроса 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.