hallo allemaal,

Onderstaand script (welke ik hier heb gevonden) leest een directory uit en geeft bestanden weer met de ingegeven extensie (jpg). Nu zou ik willen dat de resultaten in een een list/menu komen te staan in plaats van in een rijtje onder elkaar in een echo. Dit is het script-je zoals gevonden...

<?
$dir = "../foto"; // de directory die hij uit moet lezen
$exten = 'jpg'; // de extensie die hij weer moet geven
if ($handle = @opendir($dir))
{
while (false !== ($file = @readdir($handle))) {
$bestand = $dir ."/". $file ;
$ext = pathinfo($bestand);
if($ext['extension'] == $exten)
{
echo " • <a href='/module/". $file ."' target='_blank'>". basename($file) ."</a><br>" ;
}
}
@closedir($handle);
}
?>


Een ander script-je welke ik tegen kwam om een list/menu te weergeven, maakt wel een list menu van de directory, alleen geeft het de hele directory inhoud weer in plaats van alleen bijvoorbeeld jpg bestanden:

<?
echo "<select name='files'>";
$files = array_map("htmlspecialchars", scandir("../foto"));
foreach ($files as $file)
echo "<option value='$file'>$file</option>";
echo "</select>"; ?>


Nu heb ik al geprobeerd om deze twee codes met elkaar te combineren, maar krijg dan niet het gewenste resultaat.

wie weet voor dit een oplossing?
Ik gebruik simpel dit.

if (glob('*.sql')){
	foreach (glob('*.sql') as $filename) {
		echo '<br><a href="sql.php?file='.$filename.'">'.$filename.'</a>'.PHP_EOL ;
	}
}

Wat de lijst betreft zowel ol/ul/li als in een select. Dit is gewoon de nodige extra HTML ook echoën. Zoals bij mij zijn het linken naar sql bestanden in een beveiligde map welke met een php bestandje kunnen gedownload worden.

Jan
ik zou het doen als:

<?php
if ($Files = glob('*.sql')){
foreach ($aFiles as $filename) {
echo '<br><a href="sql.php?file='.$filename.'">'.$filename.'</a>'.PHP_EOL ;
}
}
?>

om te voorkomen dat je OS 2x alle bestanden moet ophalen.

(tevens zou ik kijken of $filename veilig is om zo in de html te plempen.

bij de eerste zou rawurlencode, en bij de 2e htmlspecialchars nuttig kunnen zijn.)

Reageren