Autor Zpráva
mirio
Profil
Ahoj,

chci si udělat nějaké jednoduché zobrazovaní obrázků z adresáře, nějakou maličkou fotogalerii, nejde mi o žádnou administraci, prostě jen výpis, respektive zobrazení obrázků.

Adresáře vypadají nějak takto...

/složka/podsložka/obrázek1.jpg, obrázek2.jpg, obrázek3.jpg, atd., atd.

...přemýšlel jsem, že by obrázky měly jít přes PHP nějak načíst (cesta k nim) a pak v HTML opět pomocí PHP zobrazit, ale vůbec nevím, jak na to. Myslím tím to načtení.

Ukládat cesty k obrázkům do databáze se mi zdá zbytečně komplikované, ale rád si nechám svůj názor vyvrátit. :-)

Děkuji za rady.
mirio
Profil
Ještě to trošku upřesním - ty cesty k obrázkům asi načíst nějak do pole a pak postupně vypisovat do HTML asi?
oop
Profil *
Ja by som na to šiel tak nejako:
<?php
class MyDirectoryIterator extends DirectoryIterator {
	
	public imageInfo;
	
	public function isImage(){
		if ($this->imageInfo = getimagesize($this->current())) {
			return true;
		} else {
			return false;
		} 
	}

}
?>
oop
Profil *
...zabudol som na konstruktor, dôležitá to vec:
	public function __construct($path) {
		parent::__construct($path));
	}
mirio
Profil
Aha, asi dobrý, ale vůbec tomu nerozumím... *stydlivý smajlík*
Rellik
Profil
Můžeš si stáhnout celý script: http://firstpage.rellik.eu/?page=download ( Výpis souborů z adresáře ) jen ten výpis pak upravíš aby ti to zobrazilo obrázky. Případně pokud to chceš na galerii, tak si třeba vybereš něco jiného :)
mirio
Profil
Jo, pomocí opendir to umím, ale díky. :-)

Na galerii to chci, ale chci si to právě vypracovat nějak sám, jen mně stačí popostrčit. :-) Už mě něco napadlo, ale pořád hledám, ať vidím, jak se to řeší u lidí, kteří mají větší praxi, než já. :-)
oop
Profil *
Toto funguje, testoval som, je to celkom schopne ďalšieho vývoja...
<?php
class MyDirectoryIterator extends DirectoryIterator {
	
	public $imageInfo;
	
	public function __construct($path) {
		parent::__construct($path);
	}
	
	public function isImage(){
		if ($this->imageInfo = getimagesize($this->getPathname())) {
			return true;
		} else {
			return false;
		} 
	}
}

$iterator = new MyDirectoryIterator('./složka/podsložka/');
print '<h2>Directory: '.$iterator->getPath().'</h2>'."\n";
foreach ($iterator as $item) {
    if($item->isImage()){
		print'<img src="'.$item->getPathname().'" '.$item->imageInfo[3].' title="'.$item->current().'" />'."\n"; 
	}
}
?>
oop
Profil *
Čo sa týka manuálu tak toto je dôležite:
The DirectoryIterator class
getimagesize
Cpk
Profil
prečo nepoužiješ funkciu glob() a si to zbytočne komplikuješ?

    foreach(glob('userImages/*/TN/{*.jpg,*.gif}', GLOB_BRACE) as $image)  
    {  
        echo "Filename: " . $image . "<br />";  
    }  
oop
Profil *
Cpk:
Keď bude chcieť automatické vytváranie náhľadov, stejne dojde na
getimagesize()
.
mirio
Profil
Tak já to nakonec udělal s určitou výpomocí databáze. Výsledek je tady.

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:

0