Zdravím,
měl jsem tu skript na výpis obsahu adresáře, ve kterém jsem mohl nastavit soubory, které se nemají vypisovat. Bohužel svojí zálohu již nemám a, ačkoliv soubor byl v podsložce, automat mi jeho obsah nahradil reklamním okénkem. Jednak již nemohu najít, kde jsem tento skript objevil a jednak mi skripty, které jsem nyní našel na netu nefungují.
Můžete mi, prosím, poradit skript, který
a) poběží na tomto serveru
b) bude mít možnost nezobrazit některé soubory ve výpisu.
Díky, fiba
Priklad meho skriptu: http://tom.czweb.org/sourcedir.php
Jde o univerzalni skript, ktery se umisti do adresare se soubory, ktere se maji vypsat. V casti je pak podminka if($soubor == "") continue; ktera zajistuje, ze tento soubor se nebude zobrazovat. V mem pripade samotny skript index.php a soubor .popis, ktery do stranky vlozi popis slozky.
Ukazka kodu treba na http://tom.czweb.org/moss/
Super, diky za pomoc. Nemas i neco, co by umelo i adresare stejnym zpusobem?
http://cz2.php.net/is_dir
cz.php.net/file - jsou vsechny funkce, co se daji pouzit pro soubory
Tak jsem trochu laboroval a vzniklo toto:
<head>
<title>Index Page</title>
</head>
<body>
<?php
if ($handle=opendir('.')) {
while ($file = readdir($handle))
{
$polozky[count($polozky)] = $file;
}
closedir($handle);
sort($polozky);
}
reset($polozky);
while (list($key, $val) = each($polozky))
{
if ($val != "." && $val != "..")
{
if (is_dir($val))
{ if($val == "testik") continue; else
echo "(DIR) ";
echo "<a href=\"$val\">$val</a><br>\n";
}
}
}
echo "<br>\n";
reset($polozky);
while (list($key, $val) = each($polozky))
{
if ($val != "." && $val != "..")
{
if (!is_dir($val))
{ if($val == "ahoj.txt") continue; if($val == "index.php") continue; else
echo "<a href=\"$val\">$val</a><br>\n";
}
}
}
?>
</body>
Jedná se o kód z tohoto článku: http://interval.cz/clanky/vypis-obsahu-adresare/
Do kódu jsem přidal toto: if($val == "xyz") continue; else kde za xyz se doplní název adresáře nebo souboru. Pozor, je tam část pro adresáře a část pro soubory. Tak je to třeba doplnit do správné.
misto $polozky[count($polozky)] = $file; se da psat $polozky[] = $file;
porovnavani na . a .. dej uz do cteni obsahu adresare (prvni cyklus)
taky bych teda udelal jedno pole pro adresare a jedno pro soubory a v cyklu cteni adresare rozhodl pomoci isdir(), do kteryho pole aktualni polozku dat
vypis polozek je tam zbytecne dvakrat ten samy => dat do funkce, kterou dvakrat zavolas, jednou s polem adresaru a podruhe s polem souboru
while (list($key, $val) = each($polozky)) je co? co takhle foreach
nebo
while ($file = readdir($handle))
{
$polozky[count($polozky)] = $file;
}
$i = 0;
while ($file = readdir($handle))
{
$polozky[$i] = $file;
$i++;
}
echo "Pocet souboru = ".$i;
volani funkce a i jeji obsah v tomto pripade zdrzuji vic.
Kdyby sis ale rozklikl ten link na php.net, tam je nekde neco podobneho
// --- directories / files get ---
$dirhandle = opendir($dir['to']);
$files = array();
$dirs = array();
while ($rec = readdir($dirhandle))
{
if ($rec!=="")
{
if (is_dir($dir['to'].$rec))
{if ($rec!=".") {$dirs[] = $rec;}}
else {$files[] = $rec;}
}
}
closedir($dirhandle);
sort($dirs);
sort($files);
echo "<pre>";
print_r($dirs);
print_r($files);
echo "</pre>";
>> $i = 0;
>> while ($file = readdir($handle))
>> {
>> $polozky[$i] = $file;
>> $i++;
>> }
>> echo "Pocet souboru = ".$i;
dyt jo, proc to delat jednoduse, kdyz to jde udelat slozite
>> volani funkce a i jeji obsah v tomto pripade zdrzuji vic.
dyt jo, proc to delat jednoduse, kdyz to jde udelat slozite