Смайлы сортировка

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Как вывести в нужном порядке?

#1 10 декабря 2011 в 18:33
Не подскажите — назвала смайлы 01smile.gif, 02smile.gif ...
На локал хосте выводятся 01, 02 и т.д.
На хостинге — беспорядочно.
Как поправить?
Кажется тут?
  1.  
  2. public static function getSmilesPanel($for_field_id){
  3. $html = '<div class="usr_msg_smilebox" id="smilespanel" style="display:none">';
  4. if ($handle = opendir(PATH.'/images/smilies')) {
  5. while (false !== ($file = readdir($handle))) {
  6. if ($file != '.' && $file != '..' && strstr($file, '.gif')){
  7. $tag = str_replace('.gif', '', $file);
  8. $dir = '/static/smiles/';
  9. $html .= '<a href="javascript:addSmile(\''.$tag.'\', \''.$for_field_id.'\');"><img src="'.$dir.$file.'" border="0" /></a> ';
  10. }
  11. }
  12. closedir($handle);
  13. }
  14. $html .= '</div>';
  15. return $html;
  16. }
  17.  
sort($tag) — ругается, что не массив.

Как бы поправить по-простому, без лишних циклов и т.д.
Спасибо!
#2 10 декабря 2011 в 19:23
Все правильно, $tag тут строковая переменная, которой каждый раз присваивается новое значение...
А без еще одного цикла тут не обойтись, используя данный способ чтения директории...
Я бы наверное сделал бы так:
  1. public static function getSmilesPanel($for_field_id){
  2. $html = '<div class="usr_msg_smilebox" id="smilespanel" style="display:none">';
  3. $dir = '/static/smiles/';
  4. if ($handle = opendir(PATH.$dir)) {
  5. while (false !== ($file = readdir($handle))) {
  6. if ($file != '.' && $file != '..' && strstr($file, '.gif')){
  7. $tag = str_replace('.gif', '', $file);
  8. $files[$tag] = $file;
  9. }
  10. }
  11. closedir($handle);
  12. ksort($files);
  13. foreach($files as $tag => $file) {
  14. $html .= '<a href="javascript:addSmile(\''.$tag.'\', \''.$for_field_id.'\');"><img src="'.$dir.$file.'" border="0" /></a> ';
  15. }
  16. }
  17. $html .= '</div>';
  18. return $html;
  19. }
#3 10 декабря 2011 в 19:32
HolyGun, спасибо огромное! dance
#4 10 декабря 2011 в 19:37
Да пожалуйста. :)
Можно конечно внутри основного цикла организовать сортировку, например "пузырьком", но тогда кода будет в разы больше… Лучше использовать стандартные функции php…
#5 10 декабря 2011 в 19:56
Все отлично работает!
HolyGun +100 )))
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.