Autor Zpráva
Nich
Profil
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
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
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
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
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
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
Nich
ač jsem ti to už jednou psal, zopakuji se
http://cz.php.net/readdir - example 2
bukaj
Profil
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
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
$maxik = count($file);
možná spíš
$maxik++;
a někam před ten cyklus |$maxik = 0;
Nich
Profil
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);
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: