• 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

Object Storage Arubacloud
+1 głos
398 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,360 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 (252,660 p.)

Chyba jednak,  && zamiast ||  wink

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

 

1
komentarz 22 kwietnia 2021 przez SzkolnyAdmin Szeryf (86,360 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,360 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 (252,660 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ź 94 wizyt
0 głosów
5 odpowiedzi 3,812 wizyt

92,536 zapytań

141,377 odpowiedzi

319,452 komentarzy

61,920 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...