работа с readdir

druxa

Новичок
Люди добрые! Объянните мне дураку пожалуйста. Я вот учу PHP по книге Энди Харриса - PHP и MySQL для начинающих. Так вот в ней есть пример:

PHP:
while ($currentFile !== false){
$currentFile = readDir($dp);
$theFiles[] = $currentFile;
}
Я не могу понять почему цикл выполняется? ведь здесь поставлено условие "пока $currentFile равна false выполнять следующее". А как она выполняет если $currentFile будет равна false только в том случае, если вдиректории больше не останется фалов???
 

druxa

Новичок
ты лучше мне объясни что он означает, только пожалуйста очень подробно, а тоя уже целый день не могу сообразить. В книге написано, но как-то не понятно для меня. P.S. я новичок, не грузите меня пожалуйста :)
 

Фанат

oncle terrible
Команда форума
прочти в документации
если до сих пор сообразить не можешь
 

WP

^_^
Неправильный какой-то пример... $currentFile же изначально не определен.
 

druxa

Новичок
Спасибо ребята, разобрался. Но тут же возник вопрос по следующему упражнению. Нужно написать программу которая считывает данные из текстового файла и разделяет строку на $name u $email . Содержимое файла выглядит примерно так:
name1 {здесь пробелы} [email protected]
name2 {здесь пробелы} [email protected]
name 3 {здесь пробелы} [email protected]
Код программы:
PHP:
<?
 $theData = file("maillist.dat");
 foreach($theData as $line){
    $line = rtrim($line);
    print "<h3>$line</h3>";
    list($name, $email) = split("\t", $line);
    print "Name: $name";
    print "E-mail: $email";
 }
Но почему-то $line не разделяется. Объясните пожалуйста
 

druxa

Новичок
Так ни я же этот код придумывал, это из книги. а "\t" - это насколько я знаю границы слова, только вот почему-то они не работают. И фишка в том что в текстовом файле в каждой строчке количество пробелов между значениями разное, поэтому я не могу указать то или иное число пробелов. И скажите мне вот еще что, если я применяю функцию rtrim для строчки предположим "help me please ", она убирет пробелы только после слова "please" или после каждого?
 

Фанат

oncle terrible
Команда форума
"\t" - это насколько я знаю границы слова
ты неправильно знаешь

-~{}~ 28.08.06 11:13:

если я применяю функцию rtrim для строчки предположим "help me please ", она убирет пробелы только после слова "please" или после каждого?
попробуй прочесть в документации или проверить экспериментально.
 

druxa

Новичок
Ошибся на счет "\t".
Фанат, так может подскажешь как разделить???
 

Фанат

oncle terrible
Команда форума
это упражнение к функции split? А в учебнике про неё хоть что=нибудь есть?
 

druxa

Новичок
Это упражнение к главе о работе с фалами. О функции написано мало. Принцип ее работы я так-то понял. Но почему она разделять-то не хочет объясни? Только не говори пожалуйста "почитай документацию" или еще что-нибудь, просто напиши в чем проблема. Заранее благодарен.
 

Фанат

oncle terrible
Команда форума
что з начит - не хочет?
оно делает ровно то, что ты пишешь.
если ты въехал в столб на совершенно исправной машине - это значит что машина не едет (не работает)?
или же, скорее, что водитель рулил не туда?
если ты пишешь "разделить по знаку табуляции", а а утебя там НИ ОДНОГО НЕТ, то это значит, что функция не работает?!

если это пример по работе с файлами, то разделяй либо знаком табуляции, либо пробелом (одним).
и по этому же символу разделяй.
и выполнишь своё упражнение по работе с файлами.
 

druxa

Новичок
пробовал и "\t" (ASCII 9 (0x09)), символ табуляции.
и " " (ASCII 32 (0x20)), символ пробела.
Ничего не помогло. Получается либо в книге ошибка, либо я чего-то не понимаю.
 

Фанат

oncle terrible
Команда форума
ГДЕ ПРОБОВАЛ? в скрипте?
а в ФАЙЛЕ у тебя что? "\t" (ASCII 9 (0x09)), символ табуляции?
или " " (ASCII 32 (0x20)), символ пробела?
 

Фанат

oncle terrible
Команда форума
я вот, может не понимаю
ты мне объясни.
ЗАЧЕМ пробовать в скрипте "\t" (ASCII 9 (0x09)), символ табуляции, если в файле его нет?
 
Сверху