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

PHP- otweiranie i pobieranie wszystkich plików z katalogu

VPS Starter Arubacloud
+1 głos
386 wizyt
pytanie zadane 22 kwietnia 2021 w PHP przez TheDarkSide Użytkownik (930 p.)

Tak wiem , że od tego jest fopen. Da się zrobić tak żeby każdy plik z katalogu był otwieralny i pobieralny bez wpisywania fopen do kazdego oddzielnie ? Po prostu FOPEN do calego katalogu czy cos takiego.Chodz o to zeby po wrzuceniu nowego pliku nie dopisywac nic w kodzie tylko była automatyczna mozliwosc jego otwarcia i pobrania.

</div> 
<?php
$katalog    = './Pliki';
$pliki = scandir($katalog);
foreach($pliki as $plik) echo '<p>'.$plik.'</p>';
?>


 

2 odpowiedzi

+3 głosów
odpowiedź 22 kwietnia 2021 przez SzkolnyAdmin Szeryf (86,280 p.)
edycja 22 kwietnia 2021 przez SzkolnyAdmin

Chcesz otwierać pliki czy tworzyć linki do pobrania? w tym drugim przypadku zrób tak (zakładam, że w katalogu masz tylko pliki):

$katalog    = './Pliki';
$pliki = scandir($katalog);
foreach($pliki as $plik) {
    if($plik!="." && $plik!="..") echo '<a href="./Pliki/'.$plik.'">'.$plik.'</a>';
}

Instrukcja warunkowa powoduje, że nie pojawiają się symbole katalogu bieżącego (.) i nadrzędnego (..).

1
komentarz 22 kwietnia 2021 przez VBService Ekspert (251,270 p.)

Chyba jednak,  && zamiast ||  wink

if($plik!="." && $plik!="..")

 

1
komentarz 22 kwietnia 2021 przez SzkolnyAdmin Szeryf (86,280 p.)
Oczywiście, zaraz poprawię. Mea culpa, mea maxima culpa!
komentarz 23 kwietnia 2021 przez TheDarkSide Użytkownik (930 p.)

@SzkolnyAdmin,Wszystko super dziękuję bardzo tylko teraz pliki się wyświetlają jako jeden ciąg a nie jako lista a ja naprawdę nie ogarniam PHP crying.

Jak  ustawić to jako listę ? 

 

komentarz 23 kwietnia 2021 przez SzkolnyAdmin Szeryf (86,280 p.)

No to zrób listę z odnośników:

$katalog    = './Pliki';
$pliki = scandir($katalog);
echo '<ul>';
foreach($pliki as $plik) {
    if($plik!="." && $plik!="..") echo '<li><a href="./Pliki/'.$plik.'">'.$plik.'</a></li>';
}
echo '</ul>';

 

0 głosów
odpowiedź 22 kwietnia 2021 przez VBService Ekspert (251,270 p.)
edycja 23 kwietnia 2021 przez VBService

A oto Moja propozycja  wink

$katalog    = './pliki/';

$pliki = array_slice(scandir($katalog), 2);
$linki1 = '';
foreach ($pliki as $plik) {
    if (!is_dir($katalog.$plik)) $linki1 .= '<a href="'.$katalog.$plik.'">'.$plik.'</a>';
}

lub

$katalog    = './pliki/';

$pliki = array_diff(scandir($katalog), ['..', '.']);
$linki2 = '';
foreach ($pliki as $plik) {
    if (!is_dir($katalog.$plik)) $linki2 .= '<a href="'.$katalog.$plik.'">'.$plik.'</a>';
}

lub

$katalog = './pliki/';

$linki3 = '';
foreach (glob("{$katalog}*.???") as $plik) {
    $linki3 .= '<a href="'.$plik.'">'.basename($plik).'</a>';
}

index.php

<?php
$katalog    = './pliki/';

$pliki = array_slice(scandir($katalog), 2);
$linki1 = '';
foreach ($pliki as $plik) {
    if (!is_dir($katalog.$plik)) $linki1 .= '<a href="'.$katalog.$plik.'">'.$plik.'</a>';
}


$pliki = array_diff(scandir($katalog), ['..', '.']);
$linki2 = '';
foreach ($pliki as $plik) {
    if (!is_dir($katalog.$plik)) $linki2 .= '<a href="'.$katalog.$plik.'">'.$plik.'</a>';
}


$linki3 = '';
foreach (glob("{$katalog}*.???") as $plik) {
    $linki3 .= '<a href="'.$plik.'">'.basename($plik).'</a>';
}
?>
<style>
p {
  margin-top: 1em;
  margin-bottom: 0.5em;
}
a {
  display: block;
}
</style>
<body>
<p>array_slice</p>
<?php echo $linki1; ?>

<p>array_diff</p>
<?php echo $linki2; ?>

<p>glob</p>
<?php echo $linki3; ?>
</body>

 

glob - Find pathnames matching a pattern ]

Podobne pytania

+1 głos
1 odpowiedź 191 wizyt
0 głosów
1 odpowiedź 92 wizyt
0 głosów
5 odpowiedzi 3,796 wizyt

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

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.

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!

...