Получение названий всех файлов в каталоге с PHP

По некоторым причинам я продолжаю добираться '1' для имен файлов с этим кодом:

if (is_dir($log_directory))
{
    if ($handle = opendir($log_directory))
    {
        while($file = readdir($handle) !== FALSE)
        {
            $results_array[] = $file;
        }
        closedir($handle);
    }
}

Когда я повторяю каждый элемент в $results_array, я получаю набор '1's, не название файла. Как я получаю название файлов?

82
задан Facundo Casco 5 May 2012 в 18:27
поделиться

4 ответа

Не беспокойтесь о open / readdir и используйте вместо него glob :

foreach(glob($log_directory.'/*.*') as $file) {
    ...
}
160
ответ дан 24 November 2019 в 09:02
поделиться

Вы должны заключить $ file = readdir ($ handle) в круглые скобки.

Вот так:

$log_directory = 'your_dir_name_here';

$results_array = array();

if (is_dir($log_directory))
{
        if ($handle = opendir($log_directory))
        {
                //Notice the parentheses I added:
                while(($file = readdir($handle)) !== FALSE)
                {
                        $results_array[] = $file;
                }
                closedir($handle);
        }
}

//Output findings
foreach($results_array as $value)
{
    echo $value . '<br />';
}
18
ответ дан 24 November 2019 в 09:02
поделиться

Просто используйте glob ('*') . Вот Документация

14
ответ дан 24 November 2019 в 09:02
поделиться

Это из-за неуверенности оператора. Попробуйте изменить его на:

while(($file = readdir($handle)) !== FALSE)
{
    $results_array[] = $file;
}
closedir($handle);
4
ответ дан 24 November 2019 в 09:02
поделиться
Другие вопросы по тегам:

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