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

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

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

    Alien193 Гость

    Сидел химичил, видимо сильно глубоко копать начал, клад находится где-то на поверхности :)
    В общем мне нужно из папки (в ней есть подпапки) вытащить 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 Гость

    Код (Text):
    <?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 Гость

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

    nws Гость

    Теперь работает )

    Код (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
    }
    }
     
Загрузка...
Статус темы:
Закрыта.

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