вывод списка из директории... - вопрос №489388

есть директория со списком файлов 1.php 2.php 3c.php… все файлы начинаются с цифры по возрастанию. мне нужно что бы при открытии любого файла из этой директории выводился список определенного количества файлов из этой директории. Например открываем 30.php он выводит ссылки от 20.php до 40.php или что то подобное. кто поможет со скриптом? 



Дополнение автора от 16.01.13 09:45:51

для навигации, можно что бы выводило список по дате создания, но у каждой страницы свой порядок вывода предыдущих и следующих страниц. Или хотябы как вывести список послдних файлов созданых в директории? Желательно без msql что бы, чисто php если это можно. Обгуглил много всего ничего не нашел подходящего.      



Дополнение автора от 19.01.13 21:02:16

скрипт вроде работает правда не хватало там } и "\\".$entry); на "//".$entry); заменил. остальное сам доделаю что не хватает. минимум что хотел уже получил)   вывод предыдущих и следующих страниц еще бы как то реализовать. 



Дополнение автора от 21.01.13 10:53:10

алгоритм по времени или по имени файла если возможно такое. В интервале хотя бы следующая и предыдущая.



Дополнение автора от 25.01.13 13:07:16

Warning: filemtime() [function.filemtime]: stat failed for /home/www/1/1 in /home/www/1/1.php on line 4
3.php 

3.php — это всегда последний новый или измененый файл.

$ntc = filemtime(dirname(__FILE__)."//".$x[1]); — вот эта строка с ошибкой.



Дополнение автора от 25.01.13 13:21:54

$ntc = filemtime(dirname(__FILE__)."//".$x[1].".php");

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

09.12.12
6 ответов

Лучший ответ по мнению автора

<?

$x = explode("/",$_SERVER['PHP_SELF']);
$x = $x[count($x)-1];

        $nnc = $x;
        $ntc = filemtime(dirname(__FILE__)."//".$x);
        $ntp = $ntc;
        $ntn = $ntc;
        
        

if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..")
                if (!is_dir("$entry"))
                {
                if(filemtime(dirname(__FILE__)."//".$entry)<$ntp)
                    {
                        $ntp = filemtime(dirname(__FILE__)."//".$entry);
                        $nnp = $entry;
                    }
                else
                if(filemtime(dirname(__FILE__)."//".$entry)>$ntn)
                    {
                        $ntn = filemtime(dirname(__FILE__)."//".$entry);
                        $nnn = $entry;
                    }
                    
                    
                    }
                       
                       
                       
        }
           closedir($handle);     
    }
    
    
        
if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..")
                if (!is_dir("$entry"))
                                        if(($ntc<filemtime(dirname(__FILE__)."//".$entry))&&($ntn>filemtime(dirname(__FILE__)."//".$entry)))
                                        {
                                        $nnn = $entry;
                                        $ntn = filemtime(dirname(__FILE__)."//".$entry);
                                        }
                                        else
                                        if(($ntc>filemtime(dirname(__FILE__)."//".$entry))&&($ntp<filemtime(dirname(__FILE__)."//".$entry)))
                                        {
                                        $nnp = $entry;
                                        $ntp = filemtime(dirname(__FILE__)."//".$entry);
                                        }
                                       
                       
                       
                       
        }
                closedir($handle);
    }
   
       
        echo $nnn." ".$nnp;

?>

31.01.13
Лучший ответ по мнению автора

Другие ответы

Для каких именно целей вам нужен данный скрипт? охарактеризуйте более конкретно поставленную задачу

10.01.13

напишите в чат более конкретно — разберемся

16.01.13

$num=5;
$count=0;

if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..")
        if (!is_dir("$entry")) {
            if($count<$num) {
            $names["$entry"]=filemtime(dirname(__FILE__)."\\".$entry);
            }
            else
            {
            foreach ($names as $k=>$v)
                {
                    if($v<filemtime(dirname(__FILE__)."\\".$entry))
                    {
                            unset($names["$k"]);
                            $names["$entry"]=filemtime(dirname(__FILE__)."\\".$entry);
                            break;
                    }
                }
            }
            $count++;
            
        }
    }
    closedir($handle);
    
    
    foreach ($names as $k=>$v)
    echo $k."<br>";

 

Данный кусок кода выводит $num последних созданных или измененных фалов в директории.

18.01.13

Какой интервал разброса предыдущих и следующих страниц вас интересует? будет ли данный алгоритм связан с временем создания и последнего изменения файлов?

21.01.13
$x = explode("/",$_SERVER['PHP_SELF']);<br $nnc = $x[1];<br $ntc = filemtime(dirname(__FILE__)."//".$x[1]);<br $ntp = $ntc;<br $ntn = $ntc;<br <br if ($handle = opendir('.')) {<br while (false !== ($entry = readdir($handle))) {<br if ($entry != "." && $entry != "..") <br if (!is_dir("$entry"))<br if($ntp<filemtime(dirname(__FILE__)."//".$entry))<br {<br $nnp = $entry;<br $ntp = filemtime(dirname(__FILE__)."//".$entry);<br }<br else<br if($ntn>filemtime(dirname(__FILE__)."//".$entry))<br {<br $nnn = $entry;<br $ntn = filemtime(dirname(__FILE__)."//".$entry);<br }<br <br <br <br <br }<br closedir($handle);<br }<br <br <br <br echo $nnn."<br>".$nnp; Вывод предыдущего и следующего файлов по времени создания/редактирования
24.01.13

Alexander

Читать ответы

Дима

Читать ответы
Посмотреть всех экспертов из раздела Технологии > PHP
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store