[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: выводим список файлов из папки
alex107
написал код:

$dh = opendir('ids/');
while ($file = readdir($dh)) :
echo "$file <br>"; endwhile;
closedir($dh);

все ok, заход в папку ids (в которой 3 файла 1.txt, 2.txt и 3.txt) но выводит почему-то:

. // что за точка??!! O.o
.. // и это???
1.txt
2.txt
3.txt

+ как можно убрать расширение у файлов, в общем, результат должен быть таким:

1
2
3

smile.gif



Спустя 34 минуты, 55 секунд (1.11.2010 - 18:49) inpost написал(а):
две точки - это "команда", если можно так назвать, возврата назад.
Убирается это либо проверкой, является ли $file == "." || $file == "..", либо убирается unset($readdir[0],$readdir[1]).
Смотри, вчера только создавал скрипт сканирование папок:
http://phpforum.ru/index.php?showtopic=35658&hl=
Если там только расширение ".txt", то можно к ним применить: str_replace(".txt","",$file);

Спустя 21 минута, 53 секунды (1.11.2010 - 19:11) ИНСИ написал(а):
alex107

function echoTxt($directory){
$dir = opendir($directory);
while($file = readdir($dir)) {
if(is_file($directory . "/" . $file)) { echo $file . '<br>'; }
}

closedir ($dir);
}
echoTxt('ids/');

Спустя 5 минут, 5 секунд (1.11.2010 - 19:16) alex107 написал(а):
Цитата (welbox2 @ 1.11.2010 - 16:11)
alex107

function echoTxt('ids/'){
$dir = opendir($directory);
while($file = readdir($dir)) {
if(is_file($directory . "/" . $file)) { echo $file . '<br>'; }
}

closedir ($dir);
}

ошибка на первой линии... sad.gif

Спустя 1 минута, 20 секунд (1.11.2010 - 19:17) ИНСИ написал(а):
alex107 я изменил, просто не заметил ...

Спустя 2 минуты, 43 секунды (1.11.2010 - 19:20) alex107 написал(а):
спасибо! от точек избавился... )

Спустя 14 часов, 20 минут, 52 секунды (2.11.2010 - 09:41) linker написал(а):
"." - ссылка на текущий каталог
".." - ссылка на родительский каталог
function echoTxt($directory)
{
$dir = opendir($directory);
while($file = readdir($dir))
{
if(is_file($directory . "/" . $file))
{
// Если у тебя PHP версии 5.2.0 и выше, то этот код
echo pathinfo($directory . "/" . $file, PATHINFO_FILENAME) . '<br>';
// Если у тебя PHP ниже чем версия 5.2.0, то этот код
$ext = pathinfo($directory . "/" . $file, PATHINFO_EXTENSION) . '<br>';
echo preg_replace("/$ext$/", '', $file) . '<br>';
}
}

closedir ($dir);
}
echoTxt('./ids');

Спустя 14 минут, 43 секунды (2.11.2010 - 09:56) vital написал(а):
А еще можно просто использовать одну функцию - glob()

Спустя 6 минут, 21 секунда (2.11.2010 - 10:02) linker написал(а):
glob() подходит для поиска файлов по фильтру, если уж оптимизить, то лучше использовать scandir().
function echoTxt($directory)
{
$files = scandir($directory);
foreach($files as $file)
{
if(is_file($directory . "/" . $file))
{
// Если у тебя PHP версии 5.2.0 и выше, то этот код
echo pathinfo($directory . "/" . $file, PATHINFO_FILENAME) . '<br>';
// Если у тебя PHP ниже чем версия 5.2.0, то этот код
$ext = pathinfo($directory . "/" . $file, PATHINFO_EXTENSION) . '<br>';
echo preg_replace("/$ext$/", '', $file) . '<br>';
}
}
}

echoTxt('./ids');

Спустя 8 дней, 23 часа, 44 минуты, 54 секунды (11.11.2010 - 09:47) Guest написал(а):
Помогите решить схожую задачку, только надо вывести не список файлов из папки, а их количество.
Причём желательно отдельно количество файлов и директорий в заданной директории.

Спустя 3 часа, 13 минут, 26 секунд (11.11.2010 - 13:00) linker написал(а):
$count_dirs = 0;
$count_files = 0;
function ()
{
global $count_dirs, $count_files;
...

foreach()
{
if (is_dir()) $count_dirs ++
else
if
(is_file()) $count_files ++;
}
}

Причесываем и адаптируем уже сами.

Спустя 3 месяца, 10 дней, 19 часов, 25 минут, 13 секунд (22.02.2011 - 08:26) Gigabit написал(а):
скажите а при помощи scandir() как вывести только список каталогов , а не в одну кучу каталоги и файлы, просто мне нужен чисто список каталогов

Спустя 57 минут, 14 секунд (22.02.2011 - 09:23) linker написал(а):
if (is_dir(...))
{
...
}

Спустя 1 день, 43 минуты, 15 секунд (23.02.2011 - 10:06) Gigabit написал(а):
спасибо! у меня ее вопрос , а как вывести 2 уровня пути, то есть есть путь папок www.sis.ru /name/name2/name3/name4/......n
а мне надо только вывести вот эти две ../name/name2/ как это сделать?

Спустя 1 день, 42 секунды (24.02.2011 - 10:07) linker написал(а):
Как-то так
function showdirs($directory, $level, $maxlevel)
{
$files = scandir($directory);
foreach($files as $file)
{
if ($file == '.' || $file == '..' || !is_dir($directory . "/" . $file))
continue;
echo $file;
if($level < $maxlevel)
showdirs($directory, $level + 1, $maxlevel);
}
}

showdirs('.', 0, 2);

Спустя 6 часов, 12 минут, 33 секунды (24.02.2011 - 16:19) Zerstoren написал(а):
Мона так


function scan_dir($dir = '.') {
if($handle = opendir($dir)){
while(false !== ($file = readdir($handle))){
if($file != '.' && $file != '..'){
echo $file . '<br />';
}
}
}
}


С помощью этого скрипта как-то делал xml карту сайта)
А ссылки были фиговые, не кто не воспринимал c генераторов

<div id="apDiv2"><img src="images/sys-feedback copy.png" width="144" height="44" border="0" usemap="#Map">
<map
name="Map" id="Map">
<area
shape="rect" coords="62,15,77,29" href="mailto:*****@gmail.com">
<area
shape="rect" coords="98,13,121,29" href="sitemap.html">
</map>
</div>

Спустя 6 месяцев, 20 дней, 23 часа, 4 минуты, 27 секунд (17.09.2011 - 14:24) White_Lad написал(а):
Цитата (linker @ 2.11.2010 - 07:02)
glob() подходит для поиска файлов по фильтру, если уж оптимизить, то лучше использовать scandir().
function echoTxt($directory)
{
$files = scandir($directory);
foreach($files as $file)
{
if(is_file($directory . "/" . $file))
{
// Если у тебя PHP версии 5.2.0 и выше, то этот код
echo pathinfo($directory . "/" . $file, PATHINFO_FILENAME) . '<br>';
// Если у тебя PHP ниже чем версия 5.2.0, то этот код
$ext = pathinfo($directory . "/" . $file, PATHINFO_EXTENSION) . '<br>';
echo preg_replace("/$ext$/", '', $file) . '<br>';
}
}
}

echoTxt('./ids');

А как из этого сделать подобие карты сайта? чтобы те страницы которые выводятся ссылались сами на себя ?

Спустя 16 дней, 3 часа, 52 минуты, 38 секунд (3.10.2011 - 18:16) White_Lad написал(а):
Есть какие то варианты?

Спустя 14 часов, 3 минуты, 23 секунды (4.10.2011 - 08:20) linker написал(а):
Внутри цикла
echo '<a href="http://localhost/' . $directory . "/" . $file . '">' . $file . '</a>';
Быстрый ответ:

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