vylistovanie obsahu priecinka s ikonkami

zdravim neviete mi poradit co by som mal zmenit v tomto kode aby mi to pri vylistovavani priradilo k urcitej pripone suboru urcity obrazok? napr ku subor.jpg aby tam ukazalo aj ikonku jpg alebo ku avicku a tak podobne na priecinky som to uz objavil ale tie subory hmmm dakujeeem#


<head>
<title>Index Page</title>
</head>

<body bgcolor='black'>
<?php
function GetDirArray($sPath,&$ret,&$dir)
{
global $time0, $MAXTIME, $timeover;
if ((time()-$time0)>$MAXTIME) { $timeover = 1; return; }

$handle=opendir($sPath);
while ($file = readdir($handle))
{
$polozky[count($polozky)] = $file;
}

closedir($handle);
sort($polozky);

while (list($key, $val) = each($polozky))
{
if ($val != "." && $val != "..")
{
$path = str_replace("//","/",$sPath.$val);
$path2 = substr($path,2);
$ret[count($ret)] = $path2;
if (is_dir($sPath."/".$val))
{
$dir[count($dir)] = 1;
GetDirArray($sPath."/".$val."/",$ret,$dir);
}
else
{
$dir[count($dir)] = 0;
}
}
}
}

$MAXTIME = 60;
$time0 = time();
$timeover = 0;

$cwd = getcwd();
echo "<H1>Adresar \"$cwd\"</H1><br>\n";
GetDirArray("./",$ret,$dir);
if ($timeover)
{
echo "Provadeni skriptu preruseno,";
echo "uplynul maximalni povoleny cas ($MAXTIME sek.)<br><br>\n";
}
while (list($key, $isdir) = each($dir))
{
list($key, $file) = each($ret);
if($isdir==1)
{
echo "<img src='dir.jpg'> <a href=\"$file\">$file</a><br>\n";
}
}
echo "<br><br>\n";

reset($dir);
reset($ret);

while (list($key, $file) = each($ret))
{
list($key, $isdir) = each($dir);
if($isdir==0)
{
echo "<a href=\"$file\">$file</a><br>\n";
}
}
?>
</body>
Nebudu ten kod zkoumat cely - mam jine veci na praci - ale z rychleho nahledu je patrne, ze cesta k souboru je zrejme v promenne $file (nebo mozna $dir.$file) ..

a typ souboru muzes zjistit bude pres priponku souboru (posledni text za teckou - napriklad pres funkci explode()).. nebo pres mime typ (php funkce mime_content_type() - a prehled mime-type najdes na webu hodne, staci hledat - napr http://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html ) ..

vykreslit obrázek podle druhu souboru pomocí jednoduchých if podmínek zvládněš ;)
>> vykreslit obrázek podle druhu souboru pomocí jednoduchých if podmínek zvládněš ;)
ale fuj. radsi to udelat pres pole
=Tonik=
No,nebo pres pole - zalezi na ocekavanem mnozstvi druhu souboru;) (napr jen pro 2,3 ocekavane druhy to bude imho urcite lepsi (a asi i rychlejsi) pres ify ;)) )
no ehmm no tak ratam tam s vacsim mnozstvom druhov suborov takze bude lepsie to pole co? hmm a nejaky napad ako to tam ja tj synonimum slova uplny debil dostanem?
ehmmm, ty jedno synonymum, v hlavách máme takovou šedou hmotu, tak ji zkus používat

bez záruky jak pracuje to ostatní jsem doplnil:

//definice pole pro jména souborů s ikonami - přípony zadávat velkými písmeny
$ikony=array(
'JPG'=>'ikona-jpg.png',
'GIF'=>'ikona-gif.png',
'PNG'=>'ikona-png.png',
/*
a další položky pole
*/
);

a pak také:

//určení proměnné klíč - text za posleední tečkou v proměnné $file
$pos = strrpos($file, ".");
if ($pos === false) { // note: three equal signs
// nenalezena tečka
$ikona='ikona-nav.png';
}else{
//nalezena tečka
$klic=strtoupper(substr($file,$pos+1));
if (array_key_exists($klic, $ikony)) {
$ikona=$ikony[$klic];
}else{
$ikona='ikona-nav.png';
}
}

takže celkem je to snad tohle:

<?php
//definice pole pro jména souborů s ikonami - přípony zadávat velkými písmeny
$ikony=array(
'JPG'=>'ikona-jpg.png',
'GIF'=>'ikona-gif.png',
'PNG'=>'ikona-png.png',
/*
a další položky pole
*/
);
function GetDirArray($sPath,&$ret,&$dir)
{
global $time0, $MAXTIME, $timeover;
if ((time()-$time0)>$MAXTIME) { $timeover = 1; return; }

$handle=opendir($sPath);
while ($file = readdir($handle))
{
$polozky[count($polozky)] = $file;
}

closedir($handle);
sort($polozky);

while (list($key, $val) = each($polozky))
{
if ($val != "." && $val != "..")
{
$path = str_replace("//","/",$sPath.$val);
$path2 = substr($path,2);
$ret[count($ret)] = $path2;
if (is_dir($sPath."/".$val))
{
$dir[count($dir)] = 1;
GetDirArray($sPath."/".$val."/",$ret,$dir);
}
else
{
$dir[count($dir)] = 0;
}
}
}
}

$MAXTIME = 60;
$time0 = time();
$timeover = 0;

$cwd = getcwd();
echo "<H1>Adresar \"$cwd\"</H1><br>\n";
GetDirArray("./",$ret,$dir);
if ($timeover)
{
echo "Provadeni skriptu preruseno,";
echo "uplynul maximalni povoleny cas ($MAXTIME sek.)<br><br>\n";
}
while (list($key, $isdir) = each($dir))
{
list($key, $file) = each($ret);
if($isdir==1)
{
echo "<img src='dir.jpg'> <a href=\"$file\">$file</a><br>\n";
}
}
echo "<br><br>\n";

reset($dir);
reset($ret);

while (list($key, $file) = each($ret))
{
list($key, $isdir) = each($dir);
if($isdir==0)
{
//určení proměnné klíč - text za posleední tečkou v proměnné $file
$pos = strrpos($file, ".");
if ($pos === false) { // note: three equal signs
// nenalezena tečka
$ikona='ikona-nav.png';
}else{
//nalezena tečka
$klic=strtoupper(substr($file,$pos+1));
if (array_key_exists($klic, $ikony)) {
$ikona=$ikony[$klic];
}else{
$ikona='ikona-nav.png';
}
}
/*
tady na tomto místě existuje proměnná $ikona, která obsahuje jméno obrázku, který reprezentuje typ souboru, pokud nalezený klíč není součástí pole $ikony nabídne se jméno ikona-nav.png
*/
echo "<a href=\"$file\">$file</a><br>\n";
}
}
?>
hmm no akosi to nefunguje stale je to o tom istom.. mozes kuknut
http://modell-models.com/11/img/test.php
=duro=
ds doufal, ze si ten kod alespon prestes, nez ho zkopirujes ..

samozrejme tu ikonku musis taky vypsat (tedy vypsat jeji umisteni .. ) :
misto:
echo "<a href=\"$file\">$file</a><br>\n";
das napriklad toto:
echo "<img src=\"$ikona\" alt="ico"><a href=\"$file\">$file</a><br>\n";

___
Doufam, ze dalsi dotaz nebude, proc se nezobrazuji (chybí) ikony i kdyz jejich tagy vypsany jsou ..
no dalsi j ro s tym errorom. nezistil som ci su alebo niesu tagy ;))
=duro=
Staci zkontrolovat radek 92 tveho skritpu ;)) Anglicky predpokladam umis :)

Jinak chyba bude tady - echo "<img src=\"$ikona\" alt=\"ico\"><a href=\"$file\">$file</a><br>\n";
Zapomel jsem na backslashe u jednich uvozovek .. ;)
ahaaa no jasne viem po anglicky a to o tom 92riadku mi doslo ale som myslel ze tam su na houby uvodzovky a ked som ich prehodil tak mi premenovalo kazdy subor na $file a ikonky tam aj tak neboli...tak diky ja to idem vyskusat
Gr8 fungujeeee tooo dakujeeeem