Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция readdir - как отсортировать результат в алфавитном порядке
 
 автор: Владимир55   (07.03.2008 в 23:32)   письмо автору
 
 

При исполнении кода

$dir = opendir ("."); 
readdir ($dir); 
readdir ($dir); 
while ( $file = readdir ($dir)){ 
    echo "$file<br>"; 

closedir ($dir); 

имеющиеся в директории файлы выводятся не в алфавитоном порядке, а неким иным образом.

Меня интересует не сам порядок вывода, а неизменность этого порядка. То есть, если этим кодом перебирать файлы несколько раз в одном скрипте или в разных скриптах, то будут ли файлы всегда выводиться в одном и том же порядке?

   
 
 автор: mihdan   (07.03.2008 в 23:46)   письмо автору
 
   для: Владимир55   (07.03.2008 в 23:32)
 

Они сортируются по дате.

Проще самому их сортировать


<?
$dir 
opendir ("."); 
while (
false !== ($file readdir ($dir))) { 
   if (
$file == '.' || $file == '..') continue;
    
$files[] = $file

closedir ($dir); 
sort($files);
?>


Зачем 3 раза читать директорию???

   
 
 автор: root   (08.03.2008 в 00:01)   письмо автору
 
   для: mihdan   (07.03.2008 в 23:46)
 

А так ещё проще

<?php 
    $dir 
''// директория
    
$sorted scandir($dir); // $sorted = scandir($dir, 1); отсортирует по убыванию.
    
echo"<pre>";
    
print_r($sorted);
?>

   
 
 автор: Владимир55   (08.03.2008 в 13:59)   письмо автору
 
   для: mihdan   (07.03.2008 в 23:46)
 

"Зачем 3 раза читать директорию???"

Что бы исключить файлы с точкой и двумя точками.

К сожалению, модератор изменил название этой темы, и при этом исказил ее смысл. Изначально тема называлась "Функция readdir". Сортировка не требуется, ибо логика скрипта позволяет иметь любой порядок выдачи файлов, но важно понять, будет ли этот порядок неизменным при многократном просмотре директории? То есть, если при первом чтении директории выдались файлы в таком порядке:
7.php
1.php
z.php
a.php
4.php,
то они всегда будут выдаваться именно в этом порядке.

Так?

Файлы не поменяются местами?

   
 
 автор: cheops   (08.03.2008 в 14:29)   письмо автору
 
   для: Владимир55   (08.03.2008 в 13:59)
 

Если файлы будут редактироваться, то порядок их вывода может измениться. Лучше не рисковать, поместив все файлы в массив и отсортировав его одной и фунций сортировки.

   
 
 автор: mihdan   (08.03.2008 в 14:39)   письмо автору
 
   для: Владимир55   (08.03.2008 в 13:59)
 

>Что бы исключить файлы с точкой и двумя точками.


<?
if ($file == '.' || $file == '..') continue; 
?>

   
 
 автор: Владимир55   (08.03.2008 в 14:48)   письмо автору
 
   для: mihdan   (08.03.2008 в 14:39)
 

Понятно, спасибо!

   
 
 автор: dimon_td   (09.03.2008 в 21:20)   письмо автору
 
   для: mihdan   (07.03.2008 в 23:46)
 

sort() - сортирует по алфавиту??
хорошо, а если у меня есть файлы
Price 20.07.07
Price 29.07.07
Price 17.07.07
Price 16.07.07

то после применения этой функции файлы будут ли выводиться сл. образом?

Price 16.07.07
Price 17.07.07
Price 20.07.07
Price 29.07.07

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования