PHP - stromová struktura - výpis adresáře
Zdravím,
mám vytvořenou stromovou strukturu (pro intranet) pomocí PHP a javascriptů. Potřeboval bych aby poslední složka v stromečku dokázala zobrazit dokumenty uložené na serveru.
Př:
Dokumenty -> Office -> 2010 -> leden
poslední složka leden (na serveru jí mám také adresa: \\pel.com\docs\office\2010\leden) obsahuje 4 *.doc ; 5 *.xls a 3 *.jpg .... při kliknutí na leden, bych chtěl aby se zobrazil seznam s těmito dokumenty (+ jejich popis, ale není nutné - vytvořeno,velikost atd) .. a následná možnost stažení
Dokázal by mi někdo konkrétně poradit?? A né jen googluj... ano googluju našel sem výpisy adresářů, ale nevím jak konkrétně to udělat....děkuji předem!!
mám vytvořenou stromovou strukturu (pro intranet) pomocí PHP a javascriptů. Potřeboval bych aby poslední složka v stromečku dokázala zobrazit dokumenty uložené na serveru.
Př:
Dokumenty -> Office -> 2010 -> leden
poslední složka leden (na serveru jí mám také adresa: \\pel.com\docs\office\2010\leden) obsahuje 4 *.doc ; 5 *.xls a 3 *.jpg .... při kliknutí na leden, bych chtěl aby se zobrazil seznam s těmito dokumenty (+ jejich popis, ale není nutné - vytvořeno,velikost atd) .. a následná možnost stažení
Dokázal by mi někdo konkrétně poradit?? A né jen googluj... ano googluju našel sem výpisy adresářů, ale nevím jak konkrétně to udělat....děkuji předem!!
všichni říkají že v HTML to nejde... našel sem už XX kodu jak vypsat adresář, ale furt nevím jak to dát dokupy aby to fungovalo, už sem z toho na prášky, a nevím co a jak :-/ Potřeboval bych aby mi to někdo jak idiotovi...
v tom linku máš podrobný návod s príkladmi ako to urobiť v HTML
pokiaľ ti to nič nehovorí, tak si k sebe zober niekoho, kto je aspoň trochu znalý, takto na diaľku je to beh na dlhú trať
ak robíš stránku v nejakom redakčnom systéme, tak na to určite existujú nejaké moduly
pokiaľ ti to nič nehovorí, tak si k sebe zober niekoho, kto je aspoň trochu znalý, takto na diaľku je to beh na dlhú trať
ak robíš stránku v nejakom redakčnom systéme, tak na to určite existujú nejaké moduly
jop jako líbí se mi to jak to vypadá...tak nějak bych si to představoval... Ale nevím co mám upravovat, kde, kam zadávat ty informace atd...
Redakční system bohužel nemám... kdyby jo o to je to jednodušší, můj poslední web sem dělal v Joomla! kde přes její rozhraní to lze udělat jednoduše...
takhle mám akorát Microsoft Expression web 4 ..a starej se.. omg...
Nemám ani přístup na server, kde jsou ty dokumenty, abych se podíval jestli je tam nainstalován Apache...
Dostal jsem za úkol utvořit stromovou strukturu podle toho, jak jsou vytvořeny složky dokumentů na serveru... to už mám...no a další úkol je aby v poslední složce se automaticky při kliku zobrazil obsah té složky jak je na serveru...s dokumenty... už jsem z toho na hlavu :(:(:(
Redakční system bohužel nemám... kdyby jo o to je to jednodušší, můj poslední web sem dělal v Joomla! kde přes její rozhraní to lze udělat jednoduše...
takhle mám akorát Microsoft Expression web 4 ..a starej se.. omg...
Nemám ani přístup na server, kde jsou ty dokumenty, abych se podíval jestli je tam nainstalován Apache...
Dostal jsem za úkol utvořit stromovou strukturu podle toho, jak jsou vytvořeny složky dokumentů na serveru... to už mám...no a další úkol je aby v poslední složce se automaticky při kliku zobrazil obsah té složky jak je na serveru...s dokumenty... už jsem z toho na hlavu :(:(:(
1) nevím, jestli zrovna MExp. je nejlepší volba na vytváření PHP. To už i notePad bych spíš bral, ale tak to je tvoje věc.
2) jak chceš zprovoznit PHP, když na serveru nevíš, jestli je vůbec to nejzákladnější pro jeho fci. (Apache)
3) nevím, zda jsem přesně pochopil tvojí prosbu, snad jo :-) Je to výtažek, ale mělo by to být i tak fční, ! nijak to netřídí, bereto adresáře, soubory, jak je najde na disku, takže pokud potřebuješ rozbalit nějaký daný poslední adresář, pak asi bude potřeba přidat nějakou fci pro setřídění:
if (!isset ($_GET["dir"])) { // pokud neni nadefinovany adresar, pouzij default - /data/
$direct = "data/";
} else {
$fPart = explode ("/", $_GET["dir"]);
$direct = "";
$down = false;
end ($fPart); // nastaveni posledniho prvku pole
while ($fPth = prev ($fPart)) {
if ($fPth == "..") {
$down = true;
} elseif ($fPth != ".." && $fPth != ".") {
if ($down)
$down = false;
else
$direct = $fPth . "/" . $direct;
}
}
}
$direct = "../" . $direct;
$direct = dir ($direct);
?>
2) jak chceš zprovoznit PHP, když na serveru nevíš, jestli je vůbec to nejzákladnější pro jeho fci. (Apache)
3) nevím, zda jsem přesně pochopil tvojí prosbu, snad jo :-) Je to výtažek, ale mělo by to být i tak fční, ! nijak to netřídí, bereto adresáře, soubory, jak je najde na disku, takže pokud potřebuješ rozbalit nějaký daný poslední adresář, pak asi bude potřeba přidat nějakou fci pro setřídění:
if (!isset ($_GET["dir"])) { // pokud neni nadefinovany adresar, pouzij default - /data/
$direct = "data/";
} else {
$fPart = explode ("/", $_GET["dir"]);
$direct = "";
$down = false;
end ($fPart); // nastaveni posledniho prvku pole
while ($fPth = prev ($fPart)) {
if ($fPth == "..") {
$down = true;
} elseif ($fPth != ".." && $fPth != ".") {
if ($down)
$down = false;
else
$direct = $fPth . "/" . $direct;
}
}
}
$direct = "../" . $direct;
$direct = dir ($direct);
?>
echo "Cesta: " . $direct->path . "\n"; ?> | ||||
\n"); | size | \n");read | \n");command | \n");|
\n"); echo ("\t\t[" . $entry . "]\n"); echo ("\t | \n\t\n"); if ($entry == "..") echo ("\t\t \n"); else echo ("\t\tdel\n"); echo ("\t | \n\t\n"); echo (" "); echo ("\t | \n||
\n"); echo ("\t\t" . $entry . "\n"); echo ("\t | \n\t\n"); echo ("\t\t" . filesize ($direct->path . $entry) . "\n"); echo ("\t | \n\t\n"); echo ("\t\t" . $writeEn . "\n"); echo ("\t | \n\t\n"); echo ("\t\tdel\n"); echo ("\t | \n\t\n"); echo ("\t\tren\n"); echo ("\t | \n
díky... odpovím:
1/ PHP neumím, jakš takš HTML.. a tu v práci mi hodili MExp. a řekli co po mě chtějí...
2/ server na tu domenu pel.com je umístěn v Anglii, nemám k němu přístup, a tak se nemohu podívat co tam je či není. Ale pokusím se to zjistit
3/ Mohu klidně vysvětlit znova... hh to jediné mi jde .)) No a tento kód mám vložit kam, aby to fungovalo? řazení dokumentů je to poslední co potřebuji, hlavně aby to dokázalo ukázat co tam je...
1/ PHP neumím, jakš takš HTML.. a tu v práci mi hodili MExp. a řekli co po mě chtějí...
2/ server na tu domenu pel.com je umístěn v Anglii, nemám k němu přístup, a tak se nemohu podívat co tam je či není. Ale pokusím se to zjistit
3/ Mohu klidně vysvětlit znova... hh to jediné mi jde .)) No a tento kód mám vložit kam, aby to fungovalo? řazení dokumentů je to poslední co potřebuji, hlavně aby to dokázalo ukázat co tam je...
[quote=Tommy33;457460]... Nemám ani přístup na server, kde jsou ty dokumenty, abych se podíval jestli je tam nainstalován Apache...[/quote]
to je zle, budeš potrebovať upravovať niektoré súbory, takže potrebuješ nejaké shell konto ... alebo minimálne FTP prístup, ale na celý web, nielen do toho konkrétneho adresára
to je zle, budeš potrebovať upravovať niektoré súbory, takže potrebuješ nejaké shell konto ... alebo minimálne FTP prístup, ale na celý web, nielen do toho konkrétneho adresára
nemám přístup k administraci, instalaci atd .... ale mohu prohlížet ty na-sdílené složky na té doméně \\pel.com\group\resources .. a v tom je další XXX složek... ta doména je vlastně sdílené uložiště dokumentů na serveru... přes remote control jsem se přihlásil na pel.com, jede na WS2008, když dám zobrazení síti...tak jsou tam na-sdílená místa/disky a jeden z nich je ten \\pel.com\group
Tak že bych měl požádat o přístup k administraci + FTP ?
Tak že bych měl požádat o přístup k administraci + FTP ?
[quote=EditorPO;457459]v tom linku máš podrobný návod s príkladmi ako to urobiť v HTML
[/quote]
Je to obyčejný formulář v HTML, který metodou GET předává požadavky k .htaccess, kde jsou řešeny. Pořád platí, HTML neumí vypsat obsah adresáře, pouze předává požadavky dál. V tomto případě .htaccess.
V případě zásahu do httpd.conf to musí povolit admin serveru, protože to je zásah do chodu Apache.
Možný příklad v PHP:
[code]
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 "
\n";
GetDirArray("./",$ret,$dir);
if ($timeover)
{
echo "Provadeni skriptu preruseno,";
echo "uplynul maximalni povoleny cas ($MAXTIME sek.)
\n";
}
while (list($key, $isdir) = each($dir))
{
list($key, $file) = each($ret);
if($isdir==1)
{
echo "(DIR) $file
\n";
}
}
echo "
\n";
reset($dir);
reset($ret);
while (list($key, $file) = each($ret))
{
list($key, $isdir) = each($dir);
if($isdir==0)
{
echo "$file
\n";
}
}
?>
[/code]
[/quote]
Je to obyčejný formulář v HTML, který metodou GET předává požadavky k .htaccess, kde jsou řešeny. Pořád platí, HTML neumí vypsat obsah adresáře, pouze předává požadavky dál. V tomto případě .htaccess.
V případě zásahu do httpd.conf to musí povolit admin serveru, protože to je zásah do chodu Apache.
Možný příklad v PHP:
[code]
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 "
Adresar \"$cwd\"
\n";
GetDirArray("./",$ret,$dir);
if ($timeover)
{
echo "Provadeni skriptu preruseno,";
echo "uplynul maximalni povoleny cas ($MAXTIME sek.)
\n";
}
while (list($key, $isdir) = each($dir))
{
list($key, $file) = each($ret);
if($isdir==1)
{
echo "(DIR) $file
\n";
}
}
echo "
\n";
reset($dir);
reset($ret);
while (list($key, $file) = each($ret))
{
list($key, $isdir) = each($dir);
if($isdir==0)
{
echo "$file
\n";
}
}
?>
[/code]
ok tak že bude potřeba admin práv k administraci Apachy instalovaného na serveru
j.albi: jop funguje to celkem hezky toto, ale hází to tam nějaké chybové okna, mrkni...
j.albi: jop funguje to celkem hezky toto, ale hází to tam nějaké chybové okna, mrkni...
Na klasickým serveru mě to jede. Hláška sice uvádí řádek 9, ale tam chyba není. Asi Apache má problém s řádkem 6 nebo 7. Patrně je problém v nastavení Apache.
mám to na localhostu .... WAMPSERVER verze Apache 2.2.17 ... co konkrétně by mělo být nastaveno na Apache? něco v httpd.conf ? Nebo povoloené nějaké konkrétní moduly??