reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

PHP - stromová struktura - výpis adresáře

Tommy33 (12)|20.6.2011 09:47
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!!
EditorPO (2819)|20.6.2011 11:06
v tom HTML ti to nešlo?
Tommy33 (12)|20.6.2011 11:12
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...
EditorPO (2819)|20.6.2011 11:22
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
Tommy33 (12)|20.6.2011 11:35
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 :(:(:(
vasik12 (1)|20.6.2011 11:59
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);
?>






// hlavicka tabulky s vypisem soub.
echo ("\n");
echo ("\t\n");
echo ("\t\n");
echo ("\t\n");
echo ("\t\n");
echo ("\n");

while($entry = $direct->read()) { // nacteni adresaru
$link = "login.php?..." . $direct->path . $entry;
if ($entry != ".") {
if (is_dir ($direct->path . $entry)) {
echo ("\n\t\n\t\n\t\n\n");
}
}
}
$direct->rewind();
while($entry = $direct->read()) { // nacteni souboru
$link = "login.php?..." . $direct->path . $entry;
if ($entry != "." && $entry != "..") {
if (is_file ($direct->path . $entry)) {
if (is_writable ($direct->path . $entry)) // oznaceni soub. pouze pro cteni
$writeEn = "";
else
$writeEn = "";

echo ("\n\t\n\t\n\t\n\t\n\t\n\n");
}
}
}
$direct->close();
clearstatcache ();
?>



path . "\n"; ?>
 size readcommand
\n");
echo ("\t\t[" . $entry . "]\n");
echo ("\t
\n");
if ($entry == "..")
echo ("\t\t \n");
else
echo ("\t\tdel\n");
echo ("\t
\n");
echo (" ");
echo ("\t
\n");
echo ("\t\t" . $entry . "\n");
echo ("\t
\n");
echo ("\t\t" . filesize ($direct->path . $entry) . "\n");
echo ("\t
\n");
echo ("\t\t" . $writeEn . "\n");
echo ("\t
\n");
echo ("\t\tdel\n");
echo ("\t
\n");
echo ("\t\tren\n");
echo ("\t


Tommy33 (12)|20.6.2011 12:38
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...
EditorPO (2819)|21.6.2011 00:53
[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
Tommy33 (12)|21.6.2011 08:23
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 ?
j.albi (476)|21.6.2011 10:21
[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 "

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]
Tommy33 (12)|21.6.2011 11:53
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 (476)|21.6.2011 14:04
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.
Tommy33 (12)|21.6.2011 15:25
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??
j.albi (476)|21.6.2011 16:35
Co nastavit na Wampu opravdu nevím. Možná by to chtělo testnou na nějakém free hostingu. testnul jsem to ještě na ic a jede bez problému.

to Tommy33 - SZ!
Tommy33 (12)|22.6.2011 08:02
Tak že tobě to neháže žádnou chybku jako mě?? Už jsem mluvil s ředitelem, o tom jak to udělat... a stromová struktura padla, že by to bylo moc náročné pro uživatele se v tom vyznat... omg...a já se s tím sra* takovou dobu... ale to indexování budu tak či tak potřebovat