| 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: 17 let
|
|||
0