Добрый день, я новичок, у меня есть код, который подключается к LDAP и берет оттуда данные и отображает в браузере. Но как только натыкается на русские названия, скрипт не работает. Вот пример той базы, в которой попадается русское название:
$ldaptree = "OU=Отделы,OU=Office,DC=bam,DC=loc";
Как перекодировать "Отделы", что бы скрипт считал всё правильно? Если я убираю OU=Отделы, то код работает. Если есть возможность подскажите, как вообще сделать так что бы все русские названия распознавались правильно во всем PHP сценарии. У меня сейчас вначале файла стоят вот такие две строчки:
<?php
error_reporting(-1);
header('Content-Type: text/html; charset=Windows-1251');
благодаря этому у меня хоть русские названия стали правильно отображаться в браузере, а вот считать скрипт русские названия по прежнему не может. Может всё вообще просто решается. Спасибо.
Вот скрипт:
<?php
error_reporting(-1);
header('Content-Type: text/html; charset=Windows-1251');
set_time_limit(30);
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set('display_errors',1);
// config
$ldapserver = 'XXXXX';
$ldapuser = 'XXXXX';
$ldappass = 'XXXXX';
$ldaptree = "OU=Отделы,OU=Office,DC=bam,DC=loc";
// connect
$ldapconn = ldap_connect($ldapserver) or die("Could not connect to LDAP server.");
if($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass) or die ("Error trying to bind: ".ldap_error($ldapconn));
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...<br /><br />";
$result = ldap_search($ldapconn,$ldaptree, "(cn=*)") or die ("Error in search query: ".ldap_error($ldapconn));
$data = ldap_get_entries($ldapconn, $result);
// SHOW ALL DATA
echo '<h1>Dump all data</h1><pre>';
print_r($data);
echo '</pre>';
// iterate over array and print data for each entry
echo '<h1>Show me the users</h1>';
for ($i=0; $i<$data["count"]; $i++) {
//echo "dn is: ". $data[$i]["dn"] ."<br />";
echo "User: ". $data[$i]["cn"][0] ."<br />";
if(isset($data[$i]["mail"][0])) {
echo "Email: ". $data[$i]["mail"][0] ."<br /><br />";
} else {
echo "Email: None<br /><br />";
}
}
// print number of entries found
echo "Number of entries found: " . ldap_count_entries($ldapconn, $result);
} else {
echo "LDAP bind failed...";
}
}
Добавить строчку сразу после:
$ldaptree = "OU=Отделы,OU=Office,DC=bam,DC=loc";
$ldaptree = mb_convert_encoding($ldaptree,"Windows-1251");
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть модели StickerPack и StickerМежду ними связь один ко многим