Reacties op het script Directory uitlezen
|
Gepost op: 07 november 2004 - 17:58 |
|
|
|
Onbekend
|
kun je ipv die for-lus niet gewoon in_array() gebruiken om te kijken of de extensie is toegestaan? lijkt me wat sneller... (iig minder code)
door de bestandsnaam te exploden op een punt en dan het 2e element van de array te nemen heb je niet altijd de extensie, bijv. als een bestand mooi.plaatje.jpg heet. Je kunt dan beter dit gebruiken:
$ext = strtolower(strrchr($bestandsnaam, "."));
|
|
|
|
Gepost op: 07 november 2004 - 18:13 |
|
|
|
PHP ver gevorderde
|
yep, ik verbeter het nu:!: |
|
|
|
Gepost op: 08 november 2004 - 20:36 |
|
|
|
Moderator
|
bij uitlezen()
Het array $bestanden suggereert dat je een lijst van bestanden retourneert, maar deze functie retourneert ook folders. Als het je bedoeling is om alleen bestanden te retourneren voer je een controle uit, bijvoorbeeld:
<?php
if(is_file($dit_bestand)) {
$bestanden[] = $dit_bestand;
}
?>
<?php $bestanden[] = $dit_bestand; } ?>
bij directory()
Je kan je functiedeclaratie ook als volgt doen ($filters meteen als array meegeven):
<?php
function($dir, $filters=array()) {
...
}
?>
<?php function($dir, $filters=array()) { ... } ?>
Als je dan geen tweede parameter opgeeft (dus geen filters instelt), lees je alle bestanden uit, en anders controleer je de items in $filters met behulp van in_array.
Hier moet je nog steeds kijken of je te maken hebt met een file (wederom, als dit de bedoeling is).
Ook hoeft het tweede deel van $bestandarray ($bestandsarray[1] - woops, foutje ? bestandarray <--> bestandsarray) niet je extensie te zijn (class.page.php ?).
Gebruik dus bijvoorbeeld array_pop() in combinatie van explode().
Een iets elegantere implementatie van directory() wordt dus bijvoorbeeld:
<?php
function directory($dir, $filters=array()) {
$bestanden = array();
$uitlees = opendir($dir);
while(($dit_bestand = readdir($uitlees)) !== false) {
$extensie = array_pop(explode(".", $dit_bestand));
if((in_array($extensie, $filters) || !sizeof($filters)) && is_file($dir.$dit_bestand)) {
$bestanden[] = $dit_bestand;
}
}
closedir($uitlees);
return $bestanden;
}
?>
<?php function directory ($dir, $filters=array()) { while(($dit_bestand = readdir($uitlees)) !== false) { $bestanden[] = $dit_bestand; } } return $bestanden; } ?>
Een aanroep wordt dan bijvoorbeeld:
directory("test/", array("htm", "js", "php"));
of
directory("test/");
voor alle type bestanden
En spring eens in, verdorie! |
|
|
|
Gepost op: 09 november 2004 - 00:20 |
|
|
|
PHP ver gevorderde
|
Na rijp beraad heeft de bestuursraad besloten om rekening te houden met uw commentaar.
Wij hebben onze collega-programeurs deze meldingen doorgegeven en zij hebben de veranderingen doorgevoerd.
Dit resulteerde in een verandering van de code.
en die inspringing was ergens verloren gelopen... net zoals di 's' in de var. ik had het script bij mij getest... hmmm, raar anyway... |
|
|
|
Gepost op: 05 februari 2005 - 13:28 |
|
|
|
Onbekend
|
Wha noem je dit een snippet
|
|
|
|
Gepost op: 06 februari 2005 - 00:01 |
|
|
|
PHP ver gevorderde
|
Wat anders?
Citaat: [I][B]delta_004[/B] schreef op 05 Februari 2005 - 13:28[/I]
Wha noem je dit een snippet |
|
|
|
Gepost op: 27 maart 2005 - 20:42 |
|
|
|
Nieuw lid
|
Kan je dit script ook maken voor remote directories?
(vb map met foto's staat op gratis webruimte om traffiek te besparen en deze foto's zouden in een array ingelezen moeten worden...)
Weet iemand raad?
Alvast bedankt! |
|
|
|
Gepost op: 28 maart 2005 - 01:10 |
|
|
|
PHP ver gevorderde
|
Dit script kan niet voor remote sites.
Wel zou je een nieuw script kunnen maken, dat afhangt van hoe je directory listing eruitziet.
Als je php hebt, kan je een lijst maken die je gemakkelijk kunt inlezen met php.
Als je geen php hebt, maar wel een lijst met alle documenten in die map, dan zou je een script moeten kunnen maken dat php kan inlezen.
Ik waarschuw je wel dat er AFAIK geen enkel freehost zoiets toelaat, en je account zal vrij snel afgesloten worden.
Je kunt dus beter ginder nog een site hebben die wat traffic aanroept!!! |
|
|
|
Gepost op: 06 mei 2005 - 00:15 |
|
|
|
PHP ver gevorderde
|
:D superscript, maar heb 1 vraagje, hoe lees je de array buiten de funtie uit? |
|
|
Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom. |
|
|
|