Autor | Zpráva | ||
---|---|---|---|
Nich Profil |
#1 · Zasláno: 20. 5. 2008, 17:51:42
Zdravím PHP kapacity...
mám takovej problém s cyklem... no problém.... prostě mi to nefunguje a já nevím proč.... ten script mi má určit kolik existuje v dané složce obrázků. //určení maximálního počtu obrázků for ($max=1;$max_stav!=false;$max++) { $filename = './/images/galerie/citov/test/img_$max.jpg'; if (file_exists($filename)) { $max_stav=true; return true; } else { $max_stav=false; $max = $max-1; echo "$max"; } } Bohužel echo mi nic nevyplivne :-( |
||
nightfish Profil |
#2 · Zasláno: 20. 5. 2008, 18:10:28
ten skript je dosti zvláštní... doporučuji popřemýšlet na alternativou s opendir, readdir, closedir, která nebude "tipovat" názvy souborů
btw v cestě je tečka a za ní dvě lomítka - co mají ta lomítka signalizovat? |
||
Nich Profil |
#3 · Zasláno: 20. 5. 2008, 18:22:12 · Upravil/a: Nich
nightfish
no .// tímhle se dostávám do rootu a k tomu opendir atd. vůbec to neznám, sem v PHP začátečník, neřekl bys mi o tom něco víc pls? :-) Aspoň jak by ten script s tím pracoval.... |
||
nightfish Profil |
#4 · Zasláno: 20. 5. 2008, 18:25:51
root je /
.// je budvíco (každopádně tečka na začátku značí aktuální adresář) více o uvedených funkcích se dozvíš překvapivě v manuálu k php, jsou tam i ukázky kódu http://cz.php.net/opendir http://cz.php.net/readdir http://cz.php.net/closedir |
||
Miloš Profil |
#5 · Zasláno: 20. 5. 2008, 18:45:15
Nich
no .// tímhle se dostávám do rootu Pokud vím, tak do rootu se dostaneš s jedním lomítkem a bez tečky: /cesta/k/souboru.jpg Dvě lomítka jsou pouze za protokolem jako http://cesta/k/souboru.jpg a tečka na začátku je vždy aktuálním adresářem; za touto tečkou se pokud vím nikdy dvě lomítka nepíšou. |
||
Nich Profil |
#6 · Zasláno: 20. 5. 2008, 18:48:36
Miloš
No mně to fungovalo :D ale nebudu se tu s váma hádat žejop.... už sem si to opravil na lomítko, ale se scriptíkem je to horší, nějak nevím jak tam to readdir zapojit :-\ |
||
nightfish Profil |
#7 · Zasláno: 20. 5. 2008, 18:50:15
|
||
bukaj Profil |
#8 · Zasláno: 20. 5. 2008, 19:16:24 · Upravil/a: bukaj
Já vím, že jsem mimo téma, ale chci jen něco říct k tém lomítkům. Pokud se v cestě použijí dvě lomítka (či více) za sebou, tak, pokud vím, v unixech je to jedno a interpretují se jako jedno lomítko.
A abych něco přihodil k tématu, můžeš použít trošku elegantnější DirectoryIterator (příklad použití). Pak tam máš i různé filtry atp., s iterátory jde dělat plno věcí. |
||
Nich Profil |
#9 · Zasláno: 20. 5. 2008, 20:04:43
Předem říkám, že s těmi PHP opravdu začínám tak mě nakamenujte :D, dopracoval sem se k něčemu takovýmuhle
if ($handle = opendir('images/galerie/citov/test')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $maxik = count($file); echo "$maxik"; } } bohužel $maxik nemá hodnotu 15 (je tam 15 obrázků/souborů) ale vypíše mi 15xjednicku a já za boha nevím jak to sečíst :-(, nevíte prosím někdo? |
||
nightfish Profil |
#10 · Zasláno: 20. 5. 2008, 20:16:46
$maxik = count($file);
možná spíš $maxik++; a někam před ten cyklus |$maxik = 0; |
||
Nich Profil |
#11 · Zasláno: 20. 5. 2008, 23:30:15
Tak už mi to teda nakonec funguje.... všem moc díky za rady hlavně nightfishovi.... a takhle teda vypada funkční script:
//Určí maximální počet obrázků if ($handle = opendir('images/galerie/citov/test')) { $maxik; while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $maxik++; } } $_SESSION['maxik'] = $maxik; closedir($handle); } |
||
Časová prodleva: 16 let
|
0