@Jony1337

Cкрипт, который подсчитывает количество элементов в папке?

У меня есть скрипт, который подсчитывает количество элементов в папке, скрипт выглядит так :
<?php 
    // integer starts at 0 before counting
    $i = 0; 
    $dir = '50/images/';
    if ($handle = opendir($dir)) {
        while (($file = readdir($handle)) !== false){
            if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) 
                $i++;
        }
    }
    // prints out how many were in the directory
    echo "$i items";
?>

Я поставил его в папку 50 и открыл в браузере mysite.ru/50/stat.php
там показывает - 0 items
но в папке 50/images - есть 4 фотографии
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Вот так не делайте, от слова никогда.
if ($handle = opendir($dir)) {


Что бы не было подобной фигни:
1. Сначала проверяете, является ли путь каталогом.
2. Потом выполняете действия.

При работе с путями лучше используйте глобальные пути.

$path = __DIR__ . '/50/images/';

if (!is_dir($path)) {
    throw new \RuntimeException(sprintf('Incorrect path: %s', $path));
}

$foundFiles = array_diff(scandir($path), ['..', '.']);

// Warning, it could be folders to
echo count($foundFiles);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы