hozzon létre egy dinamikus fotógalériát a PHP-vel három lépésben
ha van digitális fényképezőgépe, akkor valószínűleg van egy DigitalPHOTO galéria is emlékezetes pillanatokról. És ha van digitális fotógalériája, akkor szinte biztos, hogy egy nagyon gyakori problémába ütközik: a fényképek rendezése, hogy könnyen kereshetők és indexelhetők legyenek.
lehet,hogy ezt nem tudja, de a legtöbb digitális fényképezőgép automatikusan beágyazza a leíró metaadatokat az általuk létrehozott képek fejlécébe. Ezek a fejlécek, az úgynevezett Exif(Exif) fejlécek, információkat tartalmaznak a fényképezőgép gyártmányáról és modelljéről, a fénykép készítésének idejéről és dátumáról, a fénykép MŰSZAKI specifikációiról (shutterspeed, aperture stb.), valamint a kép miniatűrjéről. Ezenkívül sok képszerkesztő lehetővé teszi, hogy kiegészítse ezeket az automatikusan generált fejléceket saját leíró szövegével – például “Sally első futballjátéka” vagy “részeg Máltán”.
biztos vagyok benne, hogy látja, hová megyek ezzel. Egy kis képzelőerővel és kreatív gondolkodással lehetőség van arra, hogy a fényképezőgép által generált fejléceket (és ha van időd és motivációd, tovább kiegészítve)automatikusan rendszerezd és leírd a fotógyűjteményedet. Ez a cikk megmutatja, hogyan, a PHP ‘ exif funkciók használatával.
1.lépés: győződjön meg arról, hogy a PHP build támogatja az EXIF
Inorder olvasni EXIF fejlécek, a PHP build tartalmaznia kell támogatja a EXIFmodule. Egy PHP szkript létrehozásával ellenőrizheti, hogy engedélyezve van-e ez a támogatás, amely tartalmazza az a listában látható kódot.
A Lista
<?php
phpinfo ();
?>
tekintse meg a parancsfájl kimenetét a webböngészőjében, és tekintse át a kiterjesztések listáját, hogy lássa, szerepel-e benne az EXIF. Ha igen, lépjen a következő lépésre. Ha nem, akkor aktiválnia kell a PHP EXIF funkcióit isa php hosszabbító vonalának kommentálásával.ini (Windows) vagya PHP build lefordítása az –enable-exif argumentummal (UNIX). További információ arról, hogyan kell ezt megtennielérhető a PHP webhelyén.
2. lépés: Helyezze át fényképeit egyetlen könyvtárba
ezután Gyűjtse össze az összes fényképet egyetlen könyvtárba a webszerver documentroot alatt. Ez egy jó alkalom arra is, hogy mindegyikhez hozzáadja saját leíró megjegyzéseitkép (bár ez nem elengedhetetlen). Számos jó shareware és freewaretools állnak rendelkezésre, hogy segítsen ebben; vessen egy pillantást Exifer for Windows vagy RoboPhoto.
3. lépés:
az utolsó lépés a PHP szkriptek megírása, amelyek kivonják az EXIF adatokat a képekről, és automatikusan létrehoznak egy weboldalt miniatűrökkel, technikai információkkal és linkekkel az egyes képek nagyobb verzióihoz. Két scriptshere: az első, Galéria.a php (lásd a B listát) fotókat keres,és kivonja belőlük az EXIF fejléceket, míg a második a thumbnail.php, (lásd a C listát) felelős a miniatűr kép kinyeréséreminden fotó.
B lista – itt van a galéria kódja.php
<html>
<head></head>
<body>
<table>
<?php
/ / határozza meg a könyvtár elérési útját
$dir =”.”;
/ / iterálja a fájlokat
/ / keresse meg a JPEG-eket
if (is_dir ($dir)) {
if ($dh = opendir ($dir)) {
while (($file = readdir ($dh)) != = false) {
if (preg_match (“/.jpg/”, $fájl)) {
/ / olvassa el az EXIF fejléceket
$exif = exif_read_data ($fájl, 0, igaz);
echo ” <tr>”;
// get thumbnail
/ / link a teljes kép
echo “<td valign=top><a href=$dir / $file>< imgsrc=thumbnail.php?file= $ Fájl> < / a>< td>”;
echo ” < td valign=felső > < betűméret=-1>”;
// fájlnév beolvasása
echo “Fájl: <b>” . $ exif . “< / b> < br/>”;
// get timestamp
echo “Timestamp:” . $ exif . “< br/>”;
// get image dimensions
visszhang “Dimensions:” . $ exif . “x”. $ exif . “< br/>”;
// szerezd meg a fényképezőgép gyártmányát és modelljét
echo “Camera:” . $exif;
echo ” </font>< / td>”;
echo ” < / tr>”;
}
}
closedir ($dh);
}
}
?>
</táblázat>
</test>
</html>
a Thisscript a PHP könyvtárfunkcióit használja a könyvtárban található összes JPEG kép listájának lekérésére, majd az exif_read_data() függvényt használja az egyes képek EXIF fejléceinek anarray-ként történő olvasására. Minden kép miniatűrként jelenik meg a thumbnail által nyújtott információk felhasználásával.a php és az eachthumbnail maga is hiperhivatkozással rendelkezik a szülő képére. A releváns információk-képnév, méretek, időbélyeg és kameramodell—ezekből a fejlécekből származnak, és minden miniatűrrel megjelennek.
ha EXIF-szerkesztőt használt a saját megjegyzéseinek hozzáadásához a képekhez, akkor elérheti a megfelelő tömbelemeket az információk lekéréséhez és megjelenítéséhez is. Nézze meg a$exif tömböt a print_r ($exif) segítségével, hogy megtudjaa tömb elérési útja az egyéni metaadatokhoz.
megjegyzés:a különböző kameragyártók különböző módon használják az EXIF fejléceket. Ha úgy tűnik, hogy a fenti parancsfájl kimenetéből hiányzik néhány információ, akkor nézze meg a$exif tömböt a print_r ($exif) segítségével, hogy pontosan megtudja, hogyan írja a fényképezőgép az EXIF adatokat, és végezze el a megfelelő beállításokat a fenti szkript tömb kulcsaihoz (ListingB).
lista C – és itt a kód miniatűr.php
<?php
/ / határozza meg a könyvtár elérési útját
$dir =”.”;
$image = exif_thumbnail ($dir . “/” . $_GET);
fejléc (“Content-Type: image / jpeg”);
echo $image;
?>
ez a szkript nagyon egyszerű—lekéri a képfájl nevét az URL-ről, és az exif_thumbnail() függvényt használja a bélyegkép kivonására a megnevezett képből. Ezt az indexképet ezután elküldik aböngésző, a megfelelő fejléccel együtt, megjelenítésre.
Placebindkét szkriptet a könyvtárban, amely a fényképeket, majd használja AWEB böngésző eléréséhez Galéria.php. Látnia kell a miniatűröketa képek a könyvtárban, az egyes leíró információkkal együtt.Az indexképre kattintva a nagyobb szülő képhez juthat.
az A ábra egy példa arra, hogy a kimenet hogyan nézhet ki:
ábra
példa képernyőkép
Andthere van ez-egy automatikusan generált fotógaléria! Amikor új képeket másol a mappába, azok automatikusan megjelennek a galéria listában.Hát nem klassz?
Megjegyzés: A 3. lépésben létrehozott szkripteket elhelyezhetiegy másik könyvtárban, amely a fényképeket tartalmazza, mindaddig, amíg Önne feledje frissíteni a $dirvariable az egyes szkriptek tetején a fotógyűjtemény helyes elérési útjával.