Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: почему так (while_vs_if :) )?
 
 автор: masquit1   (03.09.2007 в 22:12)   письмо автору
 
 

вообщем я новичок.и вот мой случай):
<?php
$d=opendir("C:/xampp/htdocs/1");
if(($f=readdir($d))!==false)echo "$f<br>";
?>

если его запустить то он ничего не выведет,но если заменить if на while,всё получиться..
Вопрос№1: Почему так?
Вопрос№2: После подстановки while ставим вновь if,но теперь уже появится тока(.).Почему,каковы причины?



----Вообще я смотрб тут больше проф.. задают вопросы а новичкам можно?------

   
 
 автор: bronenos   (03.09.2007 в 22:28)   письмо автору
 
   для: masquit1   (03.09.2007 в 22:12)
 

1. не пробовал
2. (.) - это один из "файлов", обозначающий текущую директорию, как и следующий за ним (..) - родительская директория

   
 
 автор: masquit1   (04.09.2007 в 00:12)   письмо автору
 
   для: bronenos   (03.09.2007 в 22:28)
 

если использовать while--то вы водит вот это:
--------------------
.
..
1.php
--------------------
если использовать if--то вы водит вот это:
--------------------
.
--------------------

   
 
 автор: bronenos   (04.09.2007 в 00:41)   письмо автору
 
   для: masquit1   (04.09.2007 в 00:12)
 

ну так и в чем проблема?
у вас в папке один файл 1.пхп насколько я понял

   
 
 автор: Drago   (04.09.2007 в 01:18)   письмо автору
 
   для: masquit1   (03.09.2007 в 22:12)
 

Функция readdir(), получив дескриптор каталога, возвращает имя следующего по порядку, его, элемента.

То есть, для того, чтобы получить список всех элементов каталога, нужно вызвать функцию readdir() столько раз, сколько элементов, этот каталог содержит. А так как, зачастую, количество элементов неизвестно, то пользуются циклом.

   
 
 автор: bronenos   (04.09.2007 в 09:03)   письмо автору
 
   для: Drago   (04.09.2007 в 01:18)
 

сори, вчера 9.5 часов сидел за компом, видимо не понял, что ты ожидал получить массив всех файлов, а не чтение по порядку

   
 
 автор: masquit1   (05.09.2007 в 20:29)   письмо автору
 
   для: Drago   (04.09.2007 в 01:18)
 

" Функция readdir(), получив дескриптор каталога, возвращает имя следующего по порядку, его, элемента."

СПАСИБО!!!!огромное))) теперь понятно почему так действовал if & while .. SPS for all...
---beginner--MASS__:)

   
 
 автор: mihdan   (05.09.2007 в 14:48)   письмо автору
 
   для: masquit1   (03.09.2007 в 22:12)
 


<?php
$dir 
"/tmp/";

// Открыть заведомо существующий каталог и начать считывать его содержимое
if (is_dir($dir)) {
    if (
$dh opendir($dir)) {
        while ((
$file readdir($dh)) !== false) {
            print 
"Файл: $file : тип: " filetype($dir $file) . "\n";
        }
        
closedir($dh);
    }
}
?> 

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования