Autor | Zpráva | ||
---|---|---|---|
Petr_D Profil * |
Dobrý den,
mám problém a prosím o radu. Týká se php kodu, který uvádím níže. Slouží k automatickému načtení fotek z určité složky a vytvoření jejich náhledů. Bohužel první náhled v řadě se neshoduje s fotkou, která se objeví po kliknutí, ostatní jsou v pořádku. Kod jsem našel v nějaké diskuzi a vůbec mu nerozumím, pokud mi pomůžete budu moc rád. <?php $nazev_slozky="nějaká složka"; $slozka=opendir($nazev_slozky); if($slozka==false) die; while($soubor=readdir($slozka)) { if($soubor==".." || $soubor==".") continue; if(eregi("nahled_", $soubor)) continue; if(eregi("jpg", $soubor)) { $obrazky[]=$soubor; } } closedir($slozka); $pocet_obrazku=count($obrazky); $i=0; for($i; $i<$pocet_obrazku; ++$i) { list($sirka, $vyska)=getimagesize($nazev_slozky."/".$obrazky[$i]); $nova_sirka=196; $nova_vyska=147; $blank=imagecreatetruecolor($nova_sirka, $nova_vyska); $zdroj=imagecreatefromjpeg($nazev_slozky."/".$obrazky[$i]); sort($obrazky); imagecopyresized($blank, $zdroj, 0, 0, 0, 0, $nova_sirka, $nova_vyska, $sirka, $vyska); imagejpeg($blank, $nazev_slozky."/nahled_".$obrazky[$i], 100); echo "<a href=\"".$nazev_slozky."/".$obrazky[$i]."\" rel=\"lightbox[node_images]\"><img src=\"".$nazev_slozky."/nahled_".$obrazky[$i]."\" alt=\"".$obrazky[$i]."\" /></a> \n"; } ?> |
||
stepanka Profil * |
#2 · Zasláno: 30. 7. 2009, 20:48:45
Petr_D
Mě ten Tvůj kód funguje naprosto v pořádku. Zkus zkontrolovat složku s fotkama, nebo zkus jinou složku, jiné fotky.. Mělo by Ti to normálně jít.. |
||
Alphard Profil |
#3 · Zasláno: 30. 7. 2009, 20:53:05 · Upravil/a: Alphard
Petr_D:
Jestli jsem něco nepřehlédl, tak tohle generuje nové náhledy při každém načtení stránky a dělá to několik dalších drobnějších zbytečností. Kód je nutné rozdělit do dvou částí. První bude administrace, která zajistí vytvoření miniatur a druhá část potom už jenom vypíše odkazy. PS: trochu jsme to odsadil, takhle je to přehlednější <?php $nazev_slozky="nějaká složka"; $slozka=opendir($nazev_slozky); if($slozka==false) die; while($soubor=readdir($slozka)) { if($soubor==".." || $soubor==".") continue; if(eregi("nahled_", $soubor)) continue; if(eregi("jpg", $soubor)) { $obrazky[]=$soubor; } } closedir($slozka); $pocet_obrazku=count($obrazky); sort($obrazky); $i=0; for($i; $i<$pocet_obrazku; ++$i) { list($sirka, $vyska)=getimagesize($nazev_slozky."/".$obrazky[$i]); $nova_sirka=196; $nova_vyska=147; $blank=imagecreatetruecolor($nova_sirka, $nova_vyska); $zdroj=imagecreatefromjpeg($nazev_slozky."/".$obrazky[$i]); imagecopyresized($blank, $zdroj, 0, 0, 0, 0, $nova_sirka, $nova_vyska, $sirka, $vyska); imagejpeg($blank, $nazev_slozky."/nahled_".$obrazky[$i], 100); echo "<a href=\"".$nazev_slozky."/".$obrazky[$i]."\" rel=\"lightbox[node_images]\"><img src=\"".$nazev_slozky."/nahled_".$obrazky[$i]."\" alt=\"".$obrazky[$i]."\" /></a> \n"; } ?> Zmíněný problém vyřešíte záměnou řádků 21 a 22 (v mém kódu 24 a 25), ale je to cesta do pekel. |
||
Petr_D Profil * |
#4 · Zasláno: 30. 7. 2009, 21:03:58
Kod jsem zkoušel s několika složkama a výsledek byl vždy stejný. Fotky jsem i přejmenovával a mazal exif data, nic nepomohlo.
No, jdu bádat dál. Zkusím i cestu do pekel :-) Děkuji vám za ochotu. |
||
Alphard Profil |
#5 · Zasláno: 30. 7. 2009, 21:07:59
Petr_D:
„Zkusím i cestu do pekel :-)“ Když na to tak koukám, tak nám diskuse špatně čísluje řádky, ať to nekomplikuji, myslel jsem tyhle dva: $zdroj=imagecreatefromjpeg($nazev_slozky."/".$obrazky[$i]); sort($obrazky); ale lepší bude udělat to ještě trochu jinak, zkopírujte si kód z mého předchozího příspěvku, upravím to tam. |
||
Petr_D Profil * |
#6 · Zasláno: 30. 7. 2009, 21:47:02
100% OK. Naprosto v pořádku . Děkuji za pomoc, rychlost i ochotu.
|
||
stepanka Profil * |
#7 · Zasláno: 30. 7. 2009, 21:50:10
zajímalo by mě, kde byla chyba...
|
||
Alphard Profil |
#8 · Zasláno: 30. 7. 2009, 22:10:17
stepanka:
Tak se podívej na ty dva řádky :-) |
||
Časová prodleva: 15 let
|
0