• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

scandir - pomiń katalog

Hosting forpsi easy 1 pln
0 głosów
72 wizyt
pytanie zadane 16 listopada w PHP przez marcin.dresnok Użytkownik (990 p.)

Żeby wyświetlić folder oprócz wskazanych (mam trzy foldery których nie chcę widzieć), mam taki kod:

<?php
$dir    = 'licytacje/';
$pliki = scandir($dir);

            foreach($pliki as $plik)
            {
                if ($plik!= ".." && $plik!= ".")
                {
    echo $plik;
    }
            }
            
            ?>

kilku folderów nie  chcę widzieć, idzie to jakoś połączyć?

2 odpowiedzi

+1 głos
odpowiedź 16 listopada przez VBService Ekspert (246,070 p.)
wybrane 18 listopada przez marcin.dresnok
 
Najlepsza

Proponuję użycie array_diff 

(folder1, ..., folder3 - pomijane)

    $dir = 'licytacje/';
    $files = array_diff(scandir($dir), ['.', '..', 'folder1', 'folder2', 'folder3']);
  
    echo join('<br>', $files);

 

komentarz 16 listopada przez szpon12 Użytkownik (620 p.)
Schludne rozwiązanie :)
komentarz 16 listopada przez VBService Ekspert (246,070 p.)

Z użyciem glob

$dir = 'licytacje/';
$excluded = ['folder1', 'folder2', 'folder3'];
$folders = array_diff(array_map('basename', glob($dir . '*', GLOB_ONLYDIR)), $excluded);

echo join('<br>', $folders);

 

1
komentarz 18 listopada przez marcin.dresnok Użytkownik (990 p.)
Znam array_diff, tak zrobie
+1 głos
odpowiedź 16 listopada przez szpon12 Użytkownik (620 p.)
edycja 16 listopada przez szpon12

Cześć, można to zrobić w na przykład ten sposób:

<?php

    $dir    = 'licytacje/';
    $pliki  = scandir($dir);
 
    $wylaczone_lokacje = [
        '.',
        '..',
        'loc_1',
        'loc_2',
        'loc_3'
    ];

    foreach($pliki as $plik){
        if (!in_array($plik, $wylaczone_lokacje)){
            echo "$plik <br>";
        }
    }
             
?>

Do twojego kodu dodałem tablicę która przetrzymuje wykluczone z wyszukiwania lokalizacje oraz funkcję in_array z poprzedzającym ją wykrzyknikiem. Działa to na zasadzie "jeżeli $plik nie odpowiada żadnemu wpisowi wykluczonemu zarejestrowanemu w tablicy kontynuuj działanie, inaczej przeskocz do kolejnej iteracji".

komentarz 16 listopada przez VBService Ekspert (246,070 p.)

wink

    $dir   = 'licytacje/';
    $pliki = scandir($dir);
  
    $wylaczone_lokacje = [
        '.',
        '..',
        'loc_1',
        'loc_2',
        'loc_3'
    ];
 
    foreach($pliki as $plik){
        if (in_array($plik, $wylaczone_lokacje)) continue;
        echo "$plik <br>";
    }

 

Podobne pytania

0 głosów
1 odpowiedź 164 wizyt
0 głosów
1 odpowiedź 215 wizyt
pytanie zadane 28 marca 2021 w Systemy operacyjne, programy przez urbix01 Gaduła (3,290 p.)
0 głosów
1 odpowiedź 150 wizyt

92,133 zapytań

140,789 odpowiedzi

317,830 komentarzy

61,457 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 1886p. - Łukasz Eckert
  2. 1856p. - Dawid128
  3. 1844p. - Marcin Putra
  4. 1844p. - CC PL
  5. 1818p. - rafalszastok
  6. 1775p. - Mikbac
  7. 1760p. - rucin93
  8. 1741p. - sefirek
  9. 1682p. - Adrian Wieprzkowicz
  10. 1652p. - Eryk Andrzejewski
  11. 1644p. - jaroslawroszyk
  12. 1565p. - Rafał Trójniak
  13. 1467p. - dia-Chann
  14. 1445p. - nidomika
  15. 1424p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Uwaga - w dniach od 02.12 do 08.12 trwają Mikołajki (książki drukowane mają rabat -35%, ebooki do -45%). Zaś dodatkowy, specjalny kod zniżkowy: HELMIKOLAJ-10 dla naszych Widzów zapewni Wam oszczędność -10zł dla zamówień powyżej 70zł! Warto korzystać!

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...