Вход
Быстрая регистрация
Если вы у нас впервые: О проекте FAQ
0

Как выполнить определенное условие в php?

alex3c04 [123] более месяца назад

Есть кусок кода:

$all_files = scandir('pages');

echo '<div id=main_block><div>Список файлов</div>';

echo '<table id=table_fil align=center>';

// в цикле перебираем файлы

foreach($all_files as $one_file){

// проверяем не директория ли

if(!is_dir($one_file)){

// проверяем расширение

if(pathinfo($one_file, PATHINFO_EXTENSION) == 'html'){

// выполняем вывод списка

$file_name = explode('.', $one_file); // получаем имя

echo '<tr><td id=td width=80%>'.$file_name[0].'</td>';

echo '<td id=td align=center width=10%><a href="red.php?edit_page='.$file_name[0].'">Редактировать</a></td><td align=center id=td width=10%><a href="?del='.$one_file.'">Удалить</a></td></tr>';

}

}

}

Этот код выводит список html файлов в папке.

Как сделать, чтобы при отсутствии файлов Выводилось сообщение "Файлов нет"?

Такие конструкции как:

if ($all_files) {

foreach (...) {...} //тут цикл

} else echo 'Файлов нет';

и

IF(!is_dir($one_file)){

}

else

{

echo "Файлов нет";

}

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

1

Собственно реализация того, что описал vlad1965vlad. Присваиваем переменной $fileexist значение по умолчанию false. В цикле, там где проверяется расширение файлов, присваиваем этой переменной значение true. Это означает, что условие проверки расширения хотя бы один раз отработало, а значит у нас есть хотя бы один файл. После цикла добавляем условие проверки значения переменной $fileexist. Если оно всё ещё false, значит ни одного файла найдено не было. Выводим соответствующее сообщение.


$all_files = scandir('pages');

$fileexist=false;

echo '<div id=main_block><div>Список файлов</div>';

echo '<table id=table_fil align=center>';

// в цикле перебираем файлы

foreach($all_files as $one_file){

// проверяем не директория ли

if(!is_dir($one_file)){

// проверяем расширение

if(pathinfo($one_file, PATHINFO_EXTENSION) == 'html'){

// выполняем вывод списка

$file_name = explode('.', $one_file); // получаем имя

echo '<tr><td id=td width=80%>'.$file_name[0].'</td>';

echo '<td id=td align=center width=10%><a href="red.php?edit_page='.$file_name[0].'">Редактировать</a></td><td align=center id=td width=10%><a href="?del='.$one_file.'">Удалить</a></td></tr>';

$fileexist=true;

}

}

}

if ($fileexist==false)

echo 'Файлов нет!';

автор вопроса выбрал этот ответ лучшим
1

Введите до цыкла логическую переменную, например $fileexist=false, и в теле цыкла, если файлы нашлись, запишите $fileexist=true. А перед выводом файлов после цыкла сделайте проверку ее значения и соответственное сообщение, если $fileexist=false.

Знаете ответ?
Есть интересный вопрос? Задайте его нашему сообществу, у нас наверняка найдется ответ!
Делитесь опытом и знаниями, зарабатывайте награды и репутацию, заводите новых интересных друзей!
Задавайте интересные вопросы, давайте качественные ответы и зарабатывайте деньги. Подробнее..
Быстрая регистрация
OpenID