Как вывести смайлы чтобы они шли поубыванию для 3.2.2?
Тоесть не в хаотичном порядке вот код из 3.2.2
Знаю что с помощью функции rsort() но где ее применить не понял!
$array = array(); // Разрешаем создание массива
$dir = opendir('../pers/' . $id); // Открываем нужную папку
while ($file = readdir($dir)) {
if (($file != '.') && ($file != "..") && ($file != "name.dat") && ($file != ".svn") && ($file != "index.php")) {
$array[] = $file;
}
}
closedir($dir);
$total = count($array);
$end = $start + $kmess;
if ($end > $total)
$end = $total;
if ($total > 0) {
for ($i = $start; $i < $end; $i++) {
$pers = preg_replace('#^(.*?).(gif|jpg|png)$#isU', '$1', $array[$i], 1);
echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
echo '<img src="../pers/' . $id . '/' . $array[$i] . '" alt="" /> - ' . $pers . '</div>';
}
}
Брал код из 4 ветки
foreach(glob($rootpath . 'images/smileys/user/*/*') as $var){
$file = basename($var);
$name = explode(".", $file);
if (in_array($name[1], $ext)) {
$path = str_replace('..', $set['homeurl'], dirname($var));
$smileys['usr'][':' . functions::trans($name[0]) . ':'] = '<img src="' . $path . '/' . $file . '" alt="" />';
$smileys['usr'][':' . $name[0] . ':'] = '<img src="' . $path . '/' . $file . '" alt="" />';
}
}
Но тут две проблемы
1. Название категории
2. Нету скролинга
3. И смайлы идут не верно тоесть
Пример вывода такое
10
1 11 12 13 14 ... 20
2 21 22 ...
blackvj, после закрытия директории можно сортируй массив $array
Koenig, Сортировку в цикле for делать?
Ибо так получается пустота
closedir($dir);
$total = count($array);
$array = rsort($array);
$end = $start + $kmess;...
Сделал так...из готового примера
$pers = $array;
sort($pers);
reset($pers);
while (list($key, $val) = each($pers)) {
$pers = preg_replace('#^(.*?).(gif|jpg|png)$#isU', '$1', $val, 1);
echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
echo '<img src="../pers/' . $id . '/' . $val . '" alt="" /> - ' . $val . '</div>';
}
Вывод идет такой (все файлы в папке имеют вид 1, 2, 3, 4 ...)
А выводит их так
1 10 11 12...
2 20 21....
А как сделать так?
1 2 3 4...10
Даже тот же
for ($i = $start; $i < $end; $i++)
Во всех мануалах написано что должен идти сортинг 1 2 3 4 5...
А он в хаосе сортирует...???!!!
seg0ro, Я это уже понял... LINUX
Но как тогда сделать так как я хочу???... написать на офф. сайт LINUX почему у них корявый сортинг?!
Или тогда допустим я использую
$pers = $array;
sort($pers);
reset($pers);
while (list($key, $val) = each($pers)) {
$pers = preg_replace('#^(.*?).(gif|jpg|png)$#isU', '$1', $val, 1);
echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
echo '<img src="../pers/' . $id . '/' . $val . '" alt="" /> - ' . $val . '</div>';
}
Тогда как сделать листинг? А не полный вывод всех файлов?
Допустим даже если я не буду использовать однознаковые числа...
blackvj, вне цикла, после закрытия close
rsort($array);
не надо присвоения, просто сорт
еще есть вариант другой, складывать массив через array_push или array_unshift
http://www.php.net/manual/ru/f ... t.php
$array[] = $file; заменить на
array_unshift($array, $file);