Почемуто не выводиться сообщение "Файлов нет"

DenVeroid

Новичок
Почемуто не выводиться сообщение "Файлов нет"

Задача состоит в следующем, нужно вывести сообщение "Файлов нет" если их в этой директории нет, а если есть то дложна вывести их

PHP:
$handle = opendir('c:/server/www/news');
   while(($file = readdir($handle)) !== false)
        {
            if(($file != ".") && ($file != ".."))
            {

                 if(file_exists($file)){  // if(file_exists($file)){                 // $file==""

                  echo  "</b>".$file."</b><br> Файлов нет";

                 }else{

                      $files[] = $file;
                      echo  $file."<br>";
                      $count++;
                 }


             }
   }
всё работает, но только почему-то невыводит "Файлов нет"
 

Demiurg

Guest
какая то странная логика, особенно здесь:

if(file_exists($file)){ // if(file_exists($file)){ // $file==""
echo "</b>".$file."</b><br> Файлов нет";
}

ты можешь сказат, что проверяет этот оператор if ?
 

LAMborginy

Guest
не обсуждая криворукость скрипта...

в цикле даеш какой-нибудь переменной значение, а после цикла проверяш. Если переменная не определена, значит файлов нет.

Тока после условия (($file != ".") && ($file != "..")) определяй переменную.

а вообче:

PHP:
$handle = opendir('c:/server/www/news'); 
	while(($file = readdir($handle)) !== false) 
	{ 
		if(($file != ".") && ($file != "..")) 
		{
			$not_empty = 1;
			echo  "</b>".$file."</b><br>"; 
		}
	}

	if (!isset($not_empty)) {
		echo "Файлов нет";
	}
 

Demiurg

Guest
LAMborginy, ане легче переменную поставить в ноль сначала, а потом уже приверять поменялась она или нет.
 

LAMborginy

Guest
без разницы.
кому как нравится, тот пусть так и пишет.
хотя автору до логики далеко :)
 

Demiurg

Guest
>кому как нравится, тот пусть так и пишет.
ну-ну. а через пол года я добавлю такой же кусок чуть ниже, что по твоему будет ?
 

LAMborginy

Guest
PHP:
$not_empty = 0;
$handle = opendir('c:/server/www/news'); 
    while(($file = readdir($handle)) !== false) 
    { 
        if(($file != ".") && ($file != "..")) 
        { 
            $not_empty = 1; 
            echo  "</b>".$file."</b><br>"; 
        } 
    } 

    if ($not_empty==0) { 
        echo "Файлов нет"; 
    }
только успокойся ;)
 

DenVeroid

Новичок
мда, чёт ни один код непошол из предложеного вами, хотя я сам удивляюсь сколько пробывал переделывать так нифега неидёт.

LAMborginy, твой последний пример выводил такую ошибку


Warning: OpenDir: Invalid argument (errno 22) in C:\server\www\ftp\1index.php on line 1184

Warning: readdir(): supplied argument is not a valid Directory resource in C:\server\www\ftp\1index.php on line 1185

Warning: readdir(): supplied argument is not a valid Directory resource in C:\server\www\ftp\1index.php on line 1185


ладно, спасибо что время уделили, а я тут сделал немного подругому, вроде работает как надо


PHP:
$handle = opendir('c:/server/www/ftp/news');
   while(($file = readdir($handle)) !== false)
        {
            if(($file != ".") && ($file != ".."))
            {
                      $files[] = $file;
                      echo  $file."<br>";

             }
   }



                     if(count($files) == 0){
                     echo  "файлов нет !!!";
                     }else{
                     echo "Всего файлов".count($files);
                     }
 

Demiurg

Guest
> on line 1184
крута ... а что у тебя в предшествубщих 1000 строчках.

и что в 1184ой ?
 

DenVeroid

Новичок
крута ... а что у тебя в предшествубщих 1000 строчках.
да блин за недельку немного настрочил, всё к проэкту моему относиться а вообще там коментариев полно, потом буду чистить, понимаешь скрипть пишу, новостной движок, полностью на статических страницах будет работать, обновление через ФТП функции :)

дык, так на этой строчке:

PHP:
while(($file = readdir($handle)) !== false)
 

Demiurg

Guest
Значит не может открыть каталог. Включи вывод ошибок.
 

DenVeroid

Новичок
ой, извени, я уже сейчас дальше продвинулся, просто уже неохото возвращаться назад к этому коду эксперементировать итак время поджимает, надо до нового года дописать, извени ещё раз
 
Сверху