Ответ 1
Это должно быть так, я думаю:
$files = scandir($dir);
foreach($files as $file)
{
if(is_file($dir.$file)){
....
Это начальная часть моего кода для отображения файлов в каталоге:
$files = scandir($dir);
$array = array();
foreach($files as $file)
{
if($file != '.' && $file != '..' && !is_dir($file)){
....
Я пытаюсь перечислить все файлы в каталоге без перечисления вложенных папок. Код работает, но отображается как файлы, так и папки. Я добавил !is_dir($file)
, как вы видите в моем коде выше, но результаты все те же.
Это должно быть так, я думаю:
$files = scandir($dir);
foreach($files as $file)
{
if(is_file($dir.$file)){
....
Просто используйте is_file
.
Пример:
foreach($files as $file)
{
if( is_file($file) )
{
// Something
}
}
Какая боль для чего-то такого, казалось бы, простого! Ничто не помогло мне... Чтобы получить результат, я предположил, что имя файла имеет расширение, которое оно должно в моем случае.
if ($handle = opendir($opendir)) {
while (false !== ($entry = readdir($handle))) {
$pos = strpos( $entry, '.' );
if ($entry != "." && $entry != ".." && is_numeric($pos) ) {
............ хорошая запись
Это сканирует файлы и проверяет, если. или.. находится в массиве. Затем нажмите файлы, исключая. и.. в массиве новых файлов [].
Попробуйте следующее:
$scannedFiles = scandir($fullPath);
$files = [];
foreach ($scannedFiles as $file) {
if (!in_array(trim($file), ['.', '..'])) {
$files[] = $file;
}
}