Не удается вывести содержимое каталога

Статус
В этой теме нельзя размещать новые ответы.

fs444

Новичок
Не удается вывести содержимое каталога

PHP:
<?  
$dir=dirname(__FILE__);  
if (is_dir($dir)) {  
  echo $dir;  
  if ($dh=opendir($dir)) {    
    while ($file=readdir($dh) !== false)  echo "Файл: $file"; 
    closedir($dh);  
  }
}
?>
Он вместо названий файлов и папок выводит
Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1
Никак не пойму, в чем проблема. Вроде все правильно написано.
 

HraKK

Мудак
Команда форума
переносы тебя никто не учил ставить а?

-~{}~ 29.10.08 23:56:

ну ты понял куда тебя отправят в любом случае?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
fs444
У тебя в редакторе код тоже в одну строку?
И как? Удобно?
 

Фанат

oncle terrible
Команда форума
я думаю, здесь классический случай "правим один файл, а запускаем другой"
 

HraKK

Мудак
Команда форума
*****
не, тут конфликт приоритетов ) Вначале !== а потом присваивается результат)
 

Maxsystems

Новичок
while ($file=readdir($dh) !== false)

не пойму зачем проверять на false, while будет работать до тех пор пока не будет возращено false по умолчанию, помоему это лишняя проверка, достаточно
while ($file=readdir($dh) ){
}
 

Maxsystems

Новичок
PHP:
<?php
echo '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
</head>
<body>
';
$link=dirname(__FILE__); 
$dh=opendir($link);
while ($t=readdir($dh)){
	if (is_dir($link.'/'.$t)){	
		if($t!='.' AND $t!='..'){echo $t.' - Директория<br>';}
		} else {echo $t.' -Файл<br>';}
}

closedir($dh);
?>
Все выводит, проверял сам
 

HraKK

Мудак
Команда форума
Читай еще раз. Там черным по белому написанно почему надо использовать проверку на строгую типизацию с false
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Maxsystems
Не доходит?
В мане указано зачем нужна дополнительная проверка.
Почитай.

-~{}~ 30.10.08 12:23:

Опоздал :(
 

Maxsystems

Новичок
Ну тогда учите меня, где этот ман где написано почему так, а не подругому, немного не понимаю про какой мануал говорят, про while или про организациию проверки именно для readdir();
 

Ravanger

Новичок
Maxsystems
Подумай что зделает твой скрипт если файл будет называться к примеру 0

PS мануал всего один
 

phprus

Moderator
Команда форума
Maxsystems
[m]readdir[/m] тут все написано. Если не осилишь 2 абзаца, то посмотри английскую версию мана, там это даже в рамочку и цветом выделено.
 

Активист

Активист
Команда форума
Такой вопрос был на собеседовании, даю код, говорю найдите ошибку....

Из 20 человек нашел 1 =)
Остальные бред несли))

После фразы, "А если папка будет называться "0" то что будет?"... часть типа "АААА... упустил", "Другая долго думала и говорила - не знаю"

-~{}~ 30.10.08 16:08:

fs444
Лучше всего использовать glob, прежде всего, если не достаточно прав для открытия каталога функций opendir (процесс работает от другого пользователя)- функция glob отдаст содержимое (достаточно лишь права на чтение), да и кода меньше.
 

Maxsystems

Новичок
Это тогда вопрос к While, немного не понятно почему она при присваивание переменной ноль, заканчивает выполнение...

с сравнением по типу false!== понял почему так строго, если имени файла задать false, то false!=false вырубает while, а ноль то причем?
 

Фанат

oncle terrible
Команда форума
Если я тебе объясню - обещаешь признать свой недостаточный уровень знаний и не лезть с ответами в чужие темы?
 

fs444

Новичок
А почему код
PHP:
If ($handle=opendir("C:\WebServers\home\localhost\www")) {    
 While (($file=readdir($handle)) !== false) {      
   print "Файл: $file\n\r";
 }
}
печатает названия файлов и папок в одну строчку, хотя "\n\r" должна каждый раз должна переводить печать на новую строку?
 

dimagolov

Новичок
fs444, ты где строки смотришь? в броузере? в html как разрыв строки обозначается?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху