Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Чтение файлов из каталога, Правильное описание чтения файлов
Nidermayer  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 12
Пользователь №: 42765
На форуме: 8 месяцев, 8 дней
Карма:




Добрый день.
Не могу разобраться с примитивной задачей: прочитать список файлов из папки. Вроде все просто, но не получается.

Мой скрипт расположен в папке Х. В этой же папке расположена папка files, внутри которой файлы. Когда читаю список файлов - выдает только те файлы, которые есть и в родительской папке, и в дочерней.
К примеру в дочерней есть файлы 1, 2, 3, 4, 5, а в родительской 3, 5. Выдаст 3, 5, остальные проигнорит. И если в родительской папке есть пачка файлов - а в дочерней только 2 - эти 2 и прочтутся (т.е. берется полное совпадение).

Где косячу ??

//  Определяем читаемый каталог
$catalog = "./files";
$dir = opendir($catalog);
// Читаем содержимое директории
while ( $name = readdir($dir)){
if(is_file($name))
echo '[' . $name . ']<br>';
if(is_dir($name))
echo '{{{' . $name . '}}}<br>';
}

//Выходим из директории
closedir($dir);


Это сообщение отредактировал killer8080 - 26.06.2016 - 18:26
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 5 дней
Карма: 591




для начала условие цикла поправь как требует мануал http://ua2.php.net/manual/ru/function.read...hp#example-2570
while ( ($name = readdir($dir)) !== false){

во вторых правильно ли прописан путь?
$catalog = "./files";

./files означает папка files в текущем каталоге. Сделай
echo realpath($catalog);
чтобы увидеть реальный путь на который указывает переменная.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Nidermayer  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 12
Пользователь №: 42765
На форуме: 8 месяцев, 8 дней
Карма:




Мда. Сделал, как советовано и требовано в мануале.
Все ОК после того, как убрал условия проверки по типу - файл или каталог (тупо вывожу список и норм). ТОлько как проверять-то - файл или папка ??



$catalog = './files';

$dir = opendir($catalog);
echo realpath($catalog).'<br>';
// Читаем содержимое директории
while (false !== ($name = readdir($dir))){

echo $name . '<br>';
}
closedir($dir);

echo '<hr>';

$dir = opendir($catalog);
while (false !== ($name = readdir($dir))){
if(is_file($name) === true){
echo "Файл с именем : ".$name."<br/>";
}
if(is_dir($name) === true ){
echo "папка с именем : ".$name."<br/>";
}
}


Первый вариант выдает весь список, как и положено. Второй - первичная проблема не решена.


 ! 

М
используй теги для оформления кода
killer8080


Это сообщение отредактировал killer8080 - 26.06.2016 - 19:14
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 5 дней
Карма: 591




while (false !== ($name = readdir($dir))){
$file = "$catalog/$name";
if(is_file($file)){
echo "Файл с именем : ".$name."<br/>";
}
if(is_dir($file)){
echo "папка с именем : ".$name."<br/>";
}
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Another Reality  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 124
Пользователь №: 41606
На форуме: 1 год, 4 месяца, 21 день
Карма: 5




foreach(new DirectoryIterator('./files') as $file)
{
if($file->isFile())
echo "Файл с именем :" . $file->getFileName() . "<br />";
else
echo "Папка с именем :" . $file->getFileName() . "<br />";
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса