web2 logo

Bestanden opvragen

Voor het opvragen van bestanden bestaan de functies readdir() en scandir(). De functie readdir() geeft steeds 1 bestandsnaam, de functie scandir() geeft een array met alle bestandsnamen.

Bestaat de map?

is_dir($pad) Geeft TRUE indien $path bestaat en een directory is.

Bestaat het bestand?

is_file($pad) Geeft TRUE indien $pad bestaat en een bestand is.

Bestaat het pad?

fi1e_exists($pad) Geeft TRUE iindien $pad bestaat en het een pad of directory is.

Wat is het huidige pad?

getcwd() Geeft het huidige (volledige) pad, dat is het pad waar het PHP-bestand staat.

Wordt er een slash of een backslash gebruikt?

Om directories tescheiden in een pad worden er slashes of backslashes gebruikt, welke er gebruikt worden is afhankelijk van het operatingsysteem waar de webserver op draait. Als een PHP-script op alle operatingsystemen moet kunnen draaien, dan kan in plaats van de slash of de backslash de constante DIRECTORY_SEPARATOR gebruikt worden. Deze constante bevat altijd de juiste scheidings-slash voor het gebruikte operatingsysteem.

Bestanden opvragen met scandir()

De functie scandir($pad) geeft een array met de namen van de bestanden en directories in $pad. Ook de automatische directories '.' (huidige map) en '..' (bovenliggende map) komen mee.
Als $pad geen geldige map bevat, dan geeft de functie FALSE terug in plaats van de array.

Voorbeeld met de hele inhoud van een map:
$pad = getcwd(); $items = scandir($pad); echo "<p>Inhoud van $pad</p>"; echo '<ul>' ; foreach ($items as $item) { echo '<li>' . $item . '</li>'; } echo '</ul>';
Voorbeeld met alleen de bestanden in een map:
$pad = getcwd(); $items = scandir($pad); $files = array(); foreach ($items as $item) { $item_pad = $pad . DIRECTORY_SEPARATOR . $item; if (is_file($item_pad) ) { $files[] = $item; } } echo "<p>Bestanden in $pad</p>"; echo '<ul>' ; foreach ($files as $file) { echo '<li>' . $file . '</li>'; } echo '</ul>';

Alleen de plaatjes opvragen met readdir()

Alle bestanden in een map opvragen die aan een bepaalde voorwaarde voldoen. In dit voorbeeld met de functie readdir() worden uit de map 'plaatjes' alle bestanden opgevraagd van het type jpg:
<?php $soortbestand = '.jpg'; $bestanden = array(); // $d = map die uitgelezen moet worden, deze moet bestaan! // gebruik $d='.' voor de huidige map $d='plaatjes'; if ($handle = opendir($d)) { while (false !== ($entry = readdir($handle))) { if(strpos($entry, $soortbestand)) { $bestanden[] = substr($entry,0,strpos($entry, $soortbestand)); } } closedir($handle); } // natcasesort() sorteert zoals een mens sorteert, // niet-hoofdlettergevoelig en cijfers op numerieke volgorde natcasesort($bestanden); foreach ($bestanden as $bestand) { echo "$bestand <br>"; } ?>

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ php ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.