[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: scandir
zhenia3003
Как вывести содержимое сразу всех папок (1,2,3) ????

$me = array('1', '2', '3);
foreach ($me as $ky){
$name = scandir('
base/'.$ky.'/');
for($i=2; $i<=(sizeof($name)-1); $i++) {
echo $name[$i]."<br>";
}
}

SlavaFr
http://php.net/manual/ru/class.recursivedi...oryiterator.php

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
zhenia3003
получилось такое

$directory = 'base/'.$cityname.'/';
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
while($it->valid()) {
echo $it->getSubPath() . "\n";
$it->next();
}


на выходе получаю
1/23423
1/23425
1/23457
2/23423
6/23423

Как убрать цифры до слеша?
SlavaFr
Цитата (zhenia3003 @ 6.08.2014 - 13:19)
Как убрать цифры до слеша?

biggrin.gif с какой стороны?

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
zhenia3003
Цитата (SlavaFr @ 6.08.2014 - 13:25)
Цитата (zhenia3003 @ 6.08.2014 - 13:19)
Как убрать цифры до слеша?

biggrin.gif с какой стороны?

убрать слева user posted image
SlavaFr
http://php.net/manual/ru/function.strrpos.php
http://php.net/manual/ru/function.substr.php

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
mvg
Цитата (zhenia3003 @ 6.08.2014 - 16:19)
получилось такое

$directory = 'base/'.$cityname.'/';
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
while($it->valid()) {
echo $it->getSubPath() . "\n";
$it->next();
}


на выходе получаю
1/23423
1/23425
1/23457
2/23423
6/23423

Как убрать цифры до слеша?

Для $it можно попробовать hasChildren. Если $it директория то вывести ее один раз, если файл то выводить весь цикл. Еще можно вывод построить древовидн
ый. К примеру:
1
- 23423
- 23425
- 23457
2
- 23423
6
- 23423
zhenia3003
спасибо за подсказки, все отлично, но одно НО, почему выводит по несколько одинаковых значений?????????

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('base/'.$cityname.'/'));
while($it->valid()) {
echo substr($it->getSubPath(),2) . "\n\n<br>";//substr
$it->next();
}


1407314397
1407314397
1407314397
1407313996
1407313996
1407313996
1407313892
1407313892
1407313892
1407313892
1407313874
1407313874
1407313874
1407313915
1407313915
1407313915
SlavaFr
Цитата (zhenia3003 @ 7.08.2014 - 07:46)
почему выводит по несколько одинаковых значений?

по тому, что есть поддиректории с одним и тем же именем?

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
zhenia3003
нет. в директории 1 всего одна папка с именем 1407314397 , а выводит 3
zhenia3003
Кстати в каждой папке лежит по 3 файла, может поэтому 3 копии папки???
если взять эту папку 1407314397

base/.../7/1407314397/tel.txt
base/.../7/1407314397/text.txt
base/.../7/1407314397/title.txt


Как исправить??
SlavaFr
Цитата (zhenia3003 @ 7.08.2014 - 08:53)
нет. в директории 1 всего одна папка с именем 1407314397 , а выводит 3

так ты же читаешь все файлы без исключения и в цикле выдаешь поддерикторию всех этих файлов.
попробуй добавь условие
if($it->isDir()) ....


_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
zhenia3003
Цитата (SlavaFr @ 7.08.2014 - 10:47)
Цитата (zhenia3003 @ 7.08.2014 - 08:53)
нет. в директории 1 всего одна папка с именем 1407314397 , а выводит 3

так ты же читаешь все файлы без исключения и в цикле выдаешь поддерикторию всех этих файлов.
попробуй добавь условие
if($it->isDir()) ....


$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('base/'.$cityname.'/'));
while($it->valid()) {
if($it->isDir())
echo substr($it->getSubPath(),2) . "\n\n<br>";//substr
$it->next();
}


Так не получается, страница пустая
Быстрый ответ:

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