[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Список файлов в табличном виде!
Ilnar_develop
Не понимаю как решить задачу!
Необходимо вывести список файлов в табличном виде!
Заголовок должен быть таким:
№ | Дата и время | Путь | Наименование файла |
Сортировка должна проходить по дате.

Вот код который выводит только список:



<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<?php
function
GetListFiles($folder,&$all_files){
$fp=opendir($folder);
while($cv_file=readdir($fp)) {
if(is_file($folder."/".$cv_file)) {
$all_files[]=$folder."/".$cv_file . "<br>";
}elseif($cv_file!="." && $cv_file!=".." && is_dir($folder."/".$cv_file)){
GetListFiles($folder."/".$cv_file,$all_files);
}
}

closedir($fp);
}
$all_files=array();
GetListFiles("/mnt/GWIVC/Temp",$all_files);
print_r ($all_files);
?>


Надеюсь на помощь активных пользователей!



Спустя 29 минут, 8 секунд (12.07.2012 - 11:25) kamanch написал(а):
$all_files - это у тебя массив, который содержит полный путь к файлу.
foreach ($all_files as $key => $value) {
echo $key;
echo $value."<br />";
}


Это как бы тестовый вид. Приведи его в красивую таблицу <table>...</table>
Внутри распарсь значения $value

В помощь:
Stat()
Функции файловой системы

Но это будет без сортировки.
Сделай сначала так. Легче будет не запутаться.

Потом вместо вывода в таблицу, собираешь сначала все в массив, сортируешь его по полю "Дата создания", а потом выводишь в таблицу

Спустя 7 часов, 48 минут, 48 секунд (12.07.2012 - 19:14) Ilnar_develop написал(а):
можно по подробней!
И ещё не удается прикрутить date and time

Спустя 2 часа, 37 минут, 8 секунд (12.07.2012 - 21:51) kamanch написал(а):
Куда ж еще по-подробнее.
Код, который я дал, запускал? Что там видно было?
По ссылкам ходил? Что там пишут?

Спустя 19 минут, 43 секунды (12.07.2012 - 22:11) Ilnar_develop написал(а):
подвисает

Спустя 15 часов, 56 минут, 11 секунд (13.07.2012 - 14:07) walerus написал(а):
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<?php
function
parseDir_file($directory, $includePath = false, $recurce = false)
{
$result = array();
if (substr($directory, -1)=="/")
$directory = substr($directory, 0, -1);
if ($dh = opendir($directory))
{
while (($file=readdir($dh))!==false)
{
if (($file=='.') || ($file=='..')) continue;
if (is_dir($directory."/".$file))
{
if ($recurce)
$result = array_values(array_merge($result, parseDir($directory."/".$file, $includePath, $recurce)));
}
else
array_push($result, ($includePath)? $directory."/".$file : $file);
}
}

closedir($dh);
return $result;
}

function sortBy_date( $array, $type = 'big_to_min' )
{
if ( !is_array( $array ) )
return $array;

$result = array();
foreach( $array as $array_key => $array_value )
$result[ filemtime ( $array_value ) ] = $array_value;

// krsort -- Отсортировать массив по ключам в обратном порядке
// ksort -- Отсортировать массив по ключам


if ( $type == 'big_to_min' )
krsort( $result );
else
ksort( $result );

return $result;
}

function viewResult ( $array )
{
if ( !is_array( $array ) )
{
echo $array;
}
else
{
echo "
<table border=
\"1\">
<tr>
<td>№</td>
<td>Дата и время</td>
<td>Путь </td>
<td>Наименование файла </td>
</tr>"
;
$number = 1;
foreach( $array as $array_key => $array_value )
{
$date_and_time = date("m.d.y H:m", $array_key );

$tmp_patch = explode( '/', $array_value );
$file_name = array_pop($tmp_patch);

$patch = implode( '/', $tmp_patch );

echo "
<tr>
<td> "
. $number . " </td>
<td> "
. $date_and_time . " </td>
<td> "
. $patch . " </td>
<td> "
. $file_name . " </td>
</tr>"
;

$number++;
}

echo "</table>";
}
}



$all_files = parseDir_file( "temp", 1 );
$all_files = sortBy_date( $all_files );

echo viewResult($all_files);


?>


попробуй

Спустя 2 дня, 17 часов, 11 минут, 55 секунд (16.07.2012 - 07:19) Ilnar_develop написал(а):
получилось! спасибо!

Спустя 3 часа, 53 минуты, 55 секунд (16.07.2012 - 11:13) Ilnar_develop написал(а):
Цитата (walerus @ 13.07.2012 - 11:07)
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<?[SPAN=darling]php[/SPAN]
function parseDir_file($directory, $includePath = false, $recurce = false)
{
$result = array();
if (substr($directory, -1)=="/")
$directory = substr($directory, 0, -1);
if ($dh = opendir($directory))
{
while (($file=readdir($dh))!==false)
{
if (($file=='.') || ($file=='..')) continue;
if (is_dir($directory."/".$file))
{
if ($recurce)
$result = array_values(array_merge($result, parseDir($directory."/".$file, $includePath, $recurce)));
}
else
array_push($result, ($includePath)? $directory."/".$file : $file);
}
}

closedir($dh);
return $result;
}

function sortBy_date( $array, $type = 'big_to_min' )
{
if ( !is_array( $array ) )
return $array;

$result = array();
foreach( $array as $array_key => $array_value )
$result[ filemtime ( $array_value ) ] = $array_value;

// krsort -- Отсортировать массив по ключам в обратном порядке
// ksort -- Отсортировать массив по ключам


if ( $type == 'big_to_min' )
krsort( $result );
else
ksort( $result );

return $result;
}

function viewResult ( $array )
{
if ( !is_array( $array ) )
{
echo $array;
}
else
{
echo "
<table border=
\"1\">
<tr>
<td>№</td>
<td>Дата и время</td>
<td>Путь </td>
<td>Наименование файла </td>
</tr>"
;
$number = 1;
foreach( $array as $array_key => $array_value )
{
$date_and_time = date("m.d.y H:m", $array_key );

$tmp_patch = explode( '/', $array_value );
$file_name = array_pop($tmp_patch);

$patch = implode( '/', $tmp_patch );

echo "
<tr>
<td> "
. $number . " </td>
<td> "
. $date_and_time . " </td>
<td> "
. $patch . " </td>
<td> "
. $file_name . " </td>
</tr>"
;

$number++;
}

echo "</table>";
}
}



$all_files = parseDir_file( "temp", 1 );
$all_files = sortBy_date( $all_files );

echo viewResult($all_files);


?>


попробуй

вот только список он показывает из своей директории а мне необходимо из любой! а так всё здорово!

Спустя 8 минут, 18 секунд (16.07.2012 - 11:21) Ilnar_develop написал(а):
ошибся!
он показывает!
но не сканирует подпапки!

Спустя 1 минута, 34 секунды (16.07.2012 - 11:23) Игорь_Vasinsky написал(а):
почитай про пользовательские рекурсивные функции php

итак всё на халяву дали, ещё и допиливать? biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.