Определенное кол-а файлов из папки

Mercury

Новичок
Есть директория с большим количеством. txt файлов , как считать определенное количество,например 100 файлов
PHP:
$dir = "./100";
$list = scandir( $dir );
echo "<p >Список файлов директории ".$dir."</p>";
echo "<ul>";
foreach( $list as $name )
{
    echo "<li>".$name."</li>";
    $time[$name] =  filemtime( $dir."/".$name );

}

echo "</ul>";
arsort( $time );
$cnt = 0;
echo "<p >Последние 10 измененных:</p>";
echo "<ul>";

foreach( $time as $key => $value )

{
    if ( $key != "." and $key != ".." )

    {
        echo "<li>".$key." (время модификации: ".date("d.m.Y H:i:s", $value).")</li>";

        $cnt = $cnt + 1;

    }

    if ( $cnt == 10 ) break;

}

echo "</ul>";
Вот тут $time[$name] = filemtime( $dir."/".$name ); при чтение всей директории и проставлении даты модификации требуется много времени, поэтому требуется вытащить последние 100 файлов.
 

hell0w0rd

Продвинутый новичок
В данной моей ситуации это невозможно.
Кешируй тогда:)
Также лучше использовать абсолютный путь, особенно в вашем случае, интерпритатору не надо кажды й раз его вычислять.
Еще советую посмотерть удобный компонент: https://github.com/symfony/Finder
Будет как-то так используя компонент;)
PHP:
require __DIR__.'/vendor/autoload.php';

$finder = new Symfony\Component\Finder\Finder();

$it = $finder
    ->files()
    ->name('*.txt')
    ->sortByModifiedTime()
    ->in(__DIR__.'/test');

$maxCount = 10;
foreach($it as $file){
    if($maxCount-- == 0){
        break;
    }
    $time = date(DATE_RSS, $file->getCTime());
    $path = $file->getFilename();
    echo "Time: $time, path: [ $path ]\n";
}
 

Вурдалак

Продвинутый новичок
GusakovNick, чувак, ты не устал каждый раз рекомендовать какой-нибудь компонент Symfony? По-моему, очевидно, что такие советы не всегда уместны.
 

hell0w0rd

Продвинутый новичок
Вурдалак
С чего я должен устать? Человек отбирает по времени, в этом компоненте есть удобные фильтры, в тч по времени. Это экономит время и делает код красивым. ИМХО у ТС в коде каша. Не нарвится симфони - смотрите другие фреймворки. Я разбирался только с симфони.
 

Ragazzo

TDD interested
GusakovNick
ты комаров из гаубицы стрелять предложишь, если тебя спросят как их убить?
 

Вурдалак

Продвинутый новичок
GusakovNick, а никто не спорит, что у ТС в коде каша. Но неужели неясно, что через кашу нужно пройти, чтобы понимать в чем прелесть того или иного инструмента? Это понимание приходит не сразу.
 

hell0w0rd

Продвинутый новичок
Ragazzo
Вурдалак
Я предложил фреймворк скачать? Я предложил компонент, и ТО, если человека заинтересует, я не сказал что это решение его проблемы - решение проблемы, как мне кажется - кешировать по умному.
Да, лучше самому красиво решить. Можно на пример посмотреть как это у других решено и написать самому.
КПД этих комментариев не выше написанного кода, может варианты предложите, или продолжим дискуссию?
 

Вурдалак

Продвинутый новичок
GusakovNick, я даже не о конкретной теме говорю, а в целом. Когда речь шла о роутинге из соседней темы, ты через слово упоминал Slim и Silex. Это напоминает тех самых людей, которые стараются говорить так, чтобы их было труднее понять, чтобы выглядеть умнее.
 

hell0w0rd

Продвинутый новичок
GusakovNick, я даже не о конкретной теме говорю, а в целом. Когда речь шла о роутинге из соседней темы, ты через слово упоминал Slim и Silex. Это напоминает тех самых людей, которые стараются говорить так, чтобы их было труднее понять, чтобы выглядеть умнее.
Хм, не хотел производить такое впечатление. В той теме меня удивило, что человек перебирает роутеры, но не хочет взять один из микрофреймворков и разобраться во всем в совокупности.
 
Сверху