1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Вывод последнего созданного файла

Тема в разделе "Web - программирование", создана пользователем Alien193, 17 май 2010.

Статус темы:
Закрыта.
  1. Alien193

    Alien193 Гость

    Репутация:
    0
    Сидел химичил, видимо сильно глубоко копать начал, клад находится где-то на поверхности :)
    В общем мне нужно из папки (в ней есть подпапки) вытащить 1 файл который создан самым последним по дате и времени.
    Вот, код, который шарит по папкам, ищет файлы, узнает у них дату создания и выводит. Файлы например типа test.html
    PHP:
    function arr_max($arr)
    {
    $count count($arr);
    if(
    $count == 0) unset($count);
    for (
    $i 0$i<$count$i++){
    if (
    $arr[$i] > $max['int']) 
    $max['int'] = $arr[$i];
    }
    if (
    $i == 0) unset($i);
    $max['id'] = $i;
    if (empty(
    $max['id'])) unset($max['id']);
    return 
    $max;
    }
    function 
    ListDir($path) {
    $path = (substr($path,-1)=='/') ? $path:$path.'/';
    $dh opendir($path);
    while ( (
    $item readdir($dh) ) !== false) {
    $item $path.$item;
    if ( (
    basename($item) == "..") || (basename($item) == ".") )
    continue;
    $type filetype($item);
    if (
    $type == "dir")
    ListDir($item);
    else {
    $i++;
    $files['time'][$i] = filectime($item);
    $files['name'][$i] = $item;
    }
    }
    closedir($dh);
    $max arr_max($files['time']);
    echo 
    file_get_contents($files['name'][$max['id']]);
    }
    ListDir('folder');
    Прошу разобраться, почему он выводит 2 файла?
     
  2. nws

    nws Гость

    Репутация:
    0
    Код:
    <?php
    //NABRASAL KOD NA SKORUIU RUKU. PROVERI EGO.
    $dir = 'puti/do/papki';
    $stats = array();
    if ($handle = opendir($dir)) {
    while (false !== ($filename = readdir($handle))) {
    $stats[$filename] = filectime($filename);
    }
    closedir($handle);
    $max = max(array_values($stats));
    $tmp = array_keys($stats[$max]);
    $last_file = $tmp[0];
    echo "File $last_file bil sozdan poslednim v: " . date("F d Y H:i:s.", $stats[$max]);
    } else {
    echo 'krivoi puti ili net prav';
    }
    ?>
     
  3. Alien193

    Alien193 Гость

    Репутация:
    0
    не работает, хотелось бы учесть что он должен сканировать только файлы да ещё и в подпапках
     
  4. nws

    nws Гость

    Репутация:
    0
    Теперь работает )

    PHP:
    <?php

    $dir 
    'puti/do/papki';
    $stats = array();
    if (
    $handle opendir($dir)) {
    while (
    false !== ($filename readdir($handle))) {
    $stats[$filename] = filectime($filename);
    }
    closedir($handle);

    $max max(array_values($stats));
    $stats array_flip($stats);

    echo 
    "File " $stats[$max] ." bil sozdan poslednim v: " date("d F Y H:i:s."$max);
    } else {
    echo 
    'krivoi puti ili net prav';
    }
    ?>
    1.Если is_dir($filename) открываем и читаем все файлы/директории
    2 Создаешь массив типа:
    PHP:
    $arr = array(
    'dir_name' => array(
    'filename'=>'created_timestamp' 
    )
    );
    3. Перебираешь вышеперечисленный массив.
    PHP:
    foreach ( $arr as $directories => $files ) {
    foreach (
    $files as $file => $created_timestamp) {
    // находишь max от $created_timestamp
    }
    }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей