2016-04-16 3 views
0

Я пытаюсь эхо-файл для всех файлов в каталоге, но он не отображает файлы, а только имя файла. Это мой код:Как получить размер файла в цикле foreach

$dir = "users/$UserName"; 
$files = scandir($dir); 
sort($files); 

echo '<table>'; 
foreach ($files as $file) { 
if ($file != '.' && $file != '..') { 
?> 

    <tr> 
    <td><?php echo $file."<br />"; 
     ?> 
    </td> 
    <td> 
     <?php echo filesize($file); 
     ?> 
    </td> 

    </tr> 

<?php 

} 
} 

Что я делаю неправильно?

+2

Вы передаете только имя файла для функции filesize. Дайте полный путь, как '$ dir. '/'. $ file' –

+0

Не могли бы вы предоставить выходные html и/или любые ошибки? Это поможет выяснить, что происходит. – Wold

+0

@m_poorUser спасибо! теперь он работает: 'echo filesize ($ dir. '/'. $ file);' –

ответ

0

AS m_poorUser сказал, что вы должны пройти полный путь к файлу с функцией filesize(), может быть, если вы сделаете это:

<?php echo filesize($dir."/".$file); ?> 
0

scandir возвращает имя файла только не путь к файлу.

Вы должны использовать путь к файлу в filesize($file)

Смежные вопросы