Вывод алфавитного списка брендов.
Собственно, имеется родитель «Бренды» с ресурсами брендами. Задача: вывести списки названий ресурсов, разделенных буквенными заголовками (по алфавиту). Написал сниппет. Однако в результате вижу вопросики вместо кириллицы.
Кто нибудь может посоветовать, как состыковать кодировки для нормального отображения русских букв. Код сниппета:
Кто нибудь может посоветовать, как состыковать кодировки для нормального отображения русских букв. Код сниппета:
<?php
$objects = $modx->getCollection('modResource',array('parent'=>$parents,'published'=>1));
$brends=array();
foreach($objects as $object) {
$brends[] = $object->get('pagetitle');
}
sort($brends);
reset($brends);
$words = array();
$i=0;
foreach ($brends as $id=>$brend) {
if ($id == 0) {
$words[0] = substr($brend, 0, 1); $i++;
} else {
if( $words[$i-1] !== substr($brend, 0, 1)) {
$words[$i] = substr($brend, 0, 1);
$i++;
}
}
}
$result = "<ul>";
foreach ($words as $word) {
$result.= "<li><h3>" . $word . "</h3></li>";
foreach ($objects as $object) {
if($word == substr($object->get('pagetitle'), 0, 1)) {
$result.= "<li><a href='/" . $object->get('uri') . "'>" . $object->get('pagetitle') . "</a></li>";
}
}
}
echo $result;
Проблема начинается с массива $words. Вызов print_r ($words);
вовращает:Array ( [0] => A [1] => B [2] => C [3] => D [4] => E [5] => F [6] => G [7] => H [8] => I [9] => J [10] => K [11] => L [12] => M [13] => N [14] => P [15] => R [16] => S [17] => T [18] => W [19] => Y [20] => Z [21] => i [22] => � )
Комментарии: 2
mb_substr (multibyte)
Благодарю за нужное направление. Вначале mb_substr() проблему не решил. Среди причин подозревал версию php (данный глюк был описан здесь) и неподходящие настройки php.
Проблему решил, указав дополнительный параметр кодировки:
Проблему решил, указав дополнительный параметр кодировки:
mb_substr($brend, 0, 1,'utf-8');
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.