zdravim napsal sem si jednu funkci a return mi porad nechce vypsat co ja chci kdyz se ta funkce nevola po druhe (treti, atd) tak se to vypise ale jak se to zavola znova tak uz to nevypise co ma... mohli byste mi pomoc kde mam chybu?
normalne ji volam
echo new_najdi_path("data/","main",$new_kam);
(ta promenna je definovana)
zkousel sem pres echo vytahovat hodnoty jestli to pracuje spravne a vyslo vse jak melo ale nechce mi tohle za zadnou cenu vypsat ten return
vidim asi problem
function new_najdi_path($path,$soubor,$new_hledej)
{
if ($new_hledej=="main")
{
$new_path=("data/");
}
$otevreny_soubor=FOpen($path . $soubor . ".data", "r");
$natceny_soubor=FRead($otevreny_soubor, filesize ($path . $soubor . ".data"));
$data_soubor=Explode("#",$natceny_soubor);
for($a=1;$a<=$data_soubor[0];$a++)
{
if ($new_hledej==$data_soubor[$a])
{
$new_path = ($path . $data_soubor[$a] . "/");
}
$cesta=($path . $data_soubor[$a] . "/");
new_najdi_path($cesta,$data_soubor[$a],$new_hledej);
}
return ($new_path . $new_hledej . ".data");
}
Co to je za cunarnu? (sry, ulevil jsem si a muzeme zacit).
1)
Funkce pis malym (typo, detail), velke prvni pismeno se tradicne pise u trid.
2)
Pochopil jsem, ze soubor obsahuje string, kde prvni je pocet nazvu data souboru bez pripony+1. Pak oddeleny strednikem nasleduji nazvy data souboru. Nakonec provadis nejake cyklicke cteni souboru?
Ve for cyklu zbytecne prohledavas kazdy prvek pole, jestli se nerovna hodnote promenne predane v parametru ($new_hledej). Pouzij in_array("co_hledas", "pole_kde_hledas").
3)
Rekurzivní volání new_najdi_path() je úplně zbytečné, return proběhne,a le hodnota se neuloží.
4)
Nechces napsat, o co se tou funkci snazis? Komentar tam jaksi nebyl a kdyztak bych ti poslal aspon koncept neceho kapku funkcnejsiho.
mno vybyra to ze souboru kterej je ulozenej asi takhle
3#jednicka#dvojka#trojka#
jinak je to funkce ktera z formulare dostane hodnotu $new_hledej a snazi se najit mu cestu a kdyz to najde preda to tu hodnotu dal ke spracovani (tohle sem uz z toho vytahl)
ale ted mam novy problem potrebuju vytvorit soubor kterej je ve slozce ktera neexistuje pro vysvetleni mam slozku data a potrebuju ted vytvorit soubor kterej bude data/soubor/soubor.php mam na to udelanou funkci ale nechce mi to vytvorit jde to nejak obejit?
Otestuj existenci adresare pres is_dir() a pripadne vytvor novy pres mkdir().
K te funkci - nacti data ze souboru, rozdel je a pres in_array() testuj.
in_array nemuzu pouzit protoze potrebuju aby kazda hodnota zavolala znova tu funkci nebo to predala dal (coz mi in_array neumoznuje) nebo jo? protoze taky do muze byt nekonecnekrat pod sebou jako jmenu->pod jmenu->podpodjmenu atd a takhle to je dinamicke ze to muze byt kolikrat si tam jen zada
Sry, ale tohle je nad moje chápání asi nejen v tuhle hodinu (rekurzivní volání chápu, ale proč to chceš mi uniká). Popřemýšlím o tom, ale nevim nevim…
Nemuzes aspon zhruba popsat, co to ma cele delat?
s tim chapanim sme na tom zhruba stejne :) mno jde o to aby to prohledalo takovou jednoduchou databazi ktera je proste udelana slozkove
slozka -> pod_slozka->pod_pod_slozka
slozka -> pod_slozka2
slozka -> pod_slozka2a -> pod_pod_slozka2a
slozka -> pod_slozka3->pod_pod_slozka3
a tato funkce hleda tu cestu jaka je treba k funkci pod_pod_slozka3
tak to vyhledava v zakladnim souboru kde sou zapsany zakladni slozky coz sou pod_slozka,pod_slozka2,pod_slozka2a,pod_slozka3
a takhle to jede dal dokud to nenajde shodu a kdyz uz pod tim neni dalsi slozka tak to skace zase o slozku vys a pokracuje takhle to projede kompletne vsechny ty slozky a najde tu schodu a preda dal tu cestu coz je treba pro pod_slozku2 slozka/pod_slozka2/ takhle to vypada zbytecne ale tech pod slozek nekolika radu muze byt milion
Prohledavani do hloubky. Chapu. Muzes mi prozradit, na co takovouhle ohavnost pouzivas? :P
(vzhledem k pouziti souboru to bude docela drsne zatezovy pro server, tipl bych si - proto me zajima ucel te funkce, jestli by se nedalo vymyslet neco setrnejsiho)
A pak by me jeste zajimalo, proc kdyz uz soubor jednou najdes, pokracujes v hledani dal - aspon to tak vidim.
jo hodim tam break... mno protoze reditel ze skoly vy vymyslel ze chce menu na tento styl menu->podmenu bez mysql takze si delam takovou domaci databasi :D kdyby dovolili mysql nebo spis me pustili ho udelat na server tak to sou jednoduche scr
Tyjo, to je dobrý guláš. Jeslti jsem to v tuto hodinu pochopil je to na víceúrovňové menu? Na to stačí jeden soubor, ne? Uvnitř si udělat něco ala menu v html nebo xml a to pak zpracovat třeba na vícerozměrné pole...
Nevím, možná by na pochopení stačilo zveřejnit zadání...
Me hlavne vrta hlavou, k cemu potrebujes funkci, ktera dostane jmeno polozky a podle nej hleda cestu k ni v tom menu?