Directory uitlezen
Auteur: twopeak - 07 november 2004 - 16:35 - Gekeurd door: Dennisvb - Hits: 14527 - Aantal punten: 3.50 (7 stemmen)
2 functies om een directory uit te lezen.
De eerste functie retourneert alles uit een dir (bestanden, directories, verborgen directories, ...)
De tweede functie retourneert bepaalde bestanden.
Het is vooral de bedoeling dat jullie van dit script kunnen leren. Er staat degelijke commentaar bij, en jullie zouden alles moeten kunnen begrijpen.
je moet het pad naar de directory nog specifiëren.
|
Code: |
<?
//VERSIE 1: HEEL DE DIR UITLEZEN
function uitlezen($dir){
//$dir is de directory dat 'm moet uitlezen
$uitlees=opendir($dir);
//open de directory
$bestanden=array();
//maak vd var bestanden een array waarin de hele directory inhoud komt (ook verborgen bestanden)
while(($dit_bestand = readdir($uitlees))!==false){
//zolang hij een bestand uitleest uit $uitlees, zal hij doorgaan
/*wanneer je een while loop uitvoert,
zet php de pointer (waar hij ergens is) naar het volgende ding, dus hij heeft alle bestanden "opgeslagen" in uitlees
en dan in de while loop gaat hij ze een voor een af, tot hij eens krijgt dat er een bestand niet bestaat
*/
$bestanden[] = $dit_bestand;
//voeg dit_bestand toe aan de array
}
closedir($uitlees);
//voor de schoonheid, sluit de directory
return $bestanden;
//en stuurt het resultaat terug
}
// VERSIE 2: enkel welbepaalde bestandsextensies
function directory($dir,$filters=array()){
//filters kunnen meerdere bestandext. zijn, ze moeten door kommas gescheiden worden!
//laten we nemen $filters = "jpg,gif,png"; voor dit voorbeeld
$uitlees=opendir($dir);
$bestanden=array();
if (!$filters){
//zie versie1
while(($file = readdir($uitlees))!==false){
$bestanden[] = $file;
}
} else {
while (($dit_bestand = readdir($uitlees))!==false) {
// herhaal volgende opdrachten voor elk bestand uit $uitlees
$type = array_pop(explode(".",$dit_bestand)); //neem de letters na het laatste punt van de bestandsnaam
if(in_array($type, $filters)) { //als de extensie voorkomt in de array dan ...
$bestanden[] = $dit_bestand; //voeg het toe aan de resultaat array
}
}
}
//gedaan
closedir($uitlees);
return $bestanden;
}
echo "<pre>";
print_r(uitlezen("/Users/Bertrand/sites/"));
print_r(directory("/Users/Bertrand/sites", array("jpg","gif","png","php")));
echo "</pre>";
?>
<? //VERSIE 1: HEEL DE DIR UITLEZEN function uitlezen($dir){ //$dir is de directory dat 'm moet uitlezen //open de directory //maak vd var bestanden een array waarin de hele directory inhoud komt (ook verborgen bestanden) while(($dit_bestand = readdir($uitlees))!==false){ //zolang hij een bestand uitleest uit $uitlees, zal hij doorgaan /*wanneer je een while loop uitvoert, zet php de pointer (waar hij ergens is) naar het volgende ding, dus hij heeft alle bestanden "opgeslagen" in uitlees en dan in de while loop gaat hij ze een voor een af, tot hij eens krijgt dat er een bestand niet bestaat */ $bestanden[] = $dit_bestand; //voeg dit_bestand toe aan de array } //voor de schoonheid, sluit de directory return $bestanden; //en stuurt het resultaat terug } // VERSIE 2: enkel welbepaalde bestandsextensies function directory ($dir,$filters=array()){ //filters kunnen meerdere bestandext. zijn, ze moeten door kommas gescheiden worden! //laten we nemen $filters = "jpg,gif,png"; voor dit voorbeeld if (!$filters){ //zie versie1 while(($file = readdir($uitlees))!==false){ $bestanden[] = $file; } } else { while (($dit_bestand = readdir($uitlees))!==false) { // herhaal volgende opdrachten voor elk bestand uit $uitlees $type = array_pop(explode(".",$dit_bestand)); //neem de letters na het laatste punt van de bestandsnaam if(in_array($type, $filters)) { //als de extensie voorkomt in de array dan ... $bestanden[] = $dit_bestand; //voeg het toe aan de resultaat array } } } //gedaan return $bestanden; } print_r(uitlezen ("/Users/Bertrand/sites/")); print_r(directory ("/Users/Bertrand/sites", array("jpg","gif","png","php"))); ?>
Download code (.txt)
|
|
Stemmen |
Niet ingelogd. |
|