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

Форум PHP

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

 

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

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

тема: Отображение директории в алфавитном порядке (А, Б, В и т.д.)
 
 автор: dedev   (28.12.2006 в 17:23)   письмо автору
 
 

Подскажите,
1. как сделать, чтобы результат выводился в алфавитном порядке?
2. у меня файлы в директории двух видов 1a1.htm и 2a1.htm как вывести только файлы начинающееся на 1.

<?php 
 scan_dir
("../0");  
   
  function 
scan_dir($dirname)  
  {  
    
$dir opendir($dirname);  
     
    while ((
$file readdir($dir)) !== false)  
    {         
      if(
$file != "." && $file != "..")  
      {          
        if(
is_file($dirname."/".$file)) 
        {  
           
$text file_get_contents($dirname."/".$file);; 
           
$pattern "|<h1>(.*?)<\/h1>|"
           
preg_match($pattern$text$out); 
           echo 
"<pre><a href='$file'>";  
           echo @
$out[1]; 
           echo 
"</a></pre>";                  
        }          
        if(
is_dir($dirname."/".$file))  
        {  
          
scan_dir($dirname."/".$file);  
        }  
      }  
    }      
    
closedir($dir);  
  }  
?> 

   
 
 автор: Ученик   (28.12.2006 в 17:43)   письмо автору
 
   для: dedev   (28.12.2006 в 17:23)
 

1. Скорее всего только загонять список в массив там сортировать и потом только выводить
2. Добавить условия при выводе.

Сейчас что-то нарисую :)

   
 
 автор: Ученик   (28.12.2006 в 18:15)   письмо автору
 
   для: dedev   (28.12.2006 в 17:23)
 

Вот, что-то вроде этого должно работать :) Только минус уберете, у меня небыло хеадеров в каждом файле ;-)

<?php  

$files_arr 
= array();
$descr_files_arr = array();

# Если у файла первые символы соответствуют $needet_files он их выводит в браузер. 
#Неограничивается одним символом.
#Чтобы выводить все закомментируйте переменную

#$needet_files = "1";

 
scan_dir("../0");   

  function 
scan_dir($dirname)   
  {   
      
    
$dir opendir($dirname);   
      
    while ((
$file readdir($dir)) !== false)   
    {          
      if(
$file != "." && $file != "..")   
      {           
        if(
is_file($dirname."/".$file))  
        {   
           
$text file_get_contents($dirname."/".$file);;  
           
$pattern "|<h1>(.*?)<\/h1>|";  
           
preg_match($pattern$text$out);  
           
$GLOBALS[files_arr][] = $file;
                     
$GLOBALS[descr_files_arr][] = @$out[1];

           
#echo "<pre><a href='$file'>";   
           #echo @$out[1];  
           #echo "</a></pre>\n";                   
        
}

        if(
is_dir($dirname."/".$file))   
        {   
          
scan_dir($dirname."/".$file);   
        }   
      }   
    }       
    
closedir($dir);
  }   

    
natsort($files_arr);
    foreach (
$files_arr as $key=>$value)
    {
      if(empty(
$needet_files))
     {
           echo 
"<pre><a href='".$value."'>_".$descr_files_arr[$key]."</a></pre>\n";
     }

     elseif(
substr($value0strlen($needet_files)) == $needet_files)
      {
            echo 
"<pre><a href='".$value."'>-".$descr_files_arr[$key]."</a></pre>\n";
      }
    }

?> 

   
 
 автор: dedev   (28.12.2006 в 19:07)   письмо автору
 
   для: Ученик   (28.12.2006 в 18:15)
 

Спасибо, работает отлично.

подскажите как сделать сортировку по алфавиту, по этому значению $pattern

   
 
 автор: Ученик   (29.12.2006 в 12:50)   письмо автору
 
   для: dedev   (28.12.2006 в 19:07)
 

Перепишите вывод значений массива таким образом

    natsort($descr_files_arr); 
    foreach ($descr_files_arr as $key=>$value) 
    { 
      if(empty($needet_files)) 
     { 
           echo "<pre><a href='".$files_arr[$key]."'>".$value."</a></pre>\n"; 
     } 

     elseif(substr($value, 0, strlen($needet_files)) == $needet_files) 
      { 
           echo "<pre><a href='".$files_arr[$key]."'>".$value."</a></pre>\n"; 
      } 
    }

   
 
 автор: dedev   (03.01.2007 в 22:45)   письмо автору
 
   для: Ученик   (29.12.2006 в 12:50)
 

Подскажите, почему не сортирует в алфавитном порядке по значению $pattern

   
Rambler's Top100
вверх

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