Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

PHP fordító telepítése és integrálása az Apache http szerverbe.

Hasonló előadás


Az előadások a következő témára: "PHP fordító telepítése és integrálása az Apache http szerverbe."— Előadás másolata:

1 PHP fordító telepítése és integrálása az Apache http szerverbe.
A Web programozása 2. előadás PHP fordító telepítése és integrálása az Apache http szerverbe. PHP alapok Rózsa Szabolcs BME Általános- és Felsőgeodézia Tanszék

2 Tartalom PHP telepítése PHP alapok Naptáralkalmazás készítése (

3 PHP telepítése Minden gépre feltelepítjük a PHP fordítót, majd elvégezzük annak integrálását az Apache webszerverre. A telepítőkészlet elérhető a tárgy honlapjáról:

4 PHP telepítése A PHP-t a c:\PHP könyvtárba installáljuk:

5 PHP telepítése A telepítés során telepítsük az Apache 2.2.x Modult is:

6 PHP telepítése Windows környezet alatt a kiterjesztések közül kapcsoljuk ki az alábbiakat: CURL, OpenSSL és PostgreSQL

7 PHP konfigurálása A telepítést követően el kell végeznünk az Apache konfigurálását: PHP modul betöltése PHP indexfájlok kezelése (A DirectoryIndex direktívához adjuk hozzá az index.php nevet is.

8 Az első PHP fájl lefuttatása
A tárgy honlapjáról töltsük le a mai órán használt példaprogramokat, majd másoljuk be az e:\webprog\htdocs könyvtárba. Ezt követően egy böngészőben nyissuk meg a URL-t. Állítuk át a portot 80-ra!

9 Az első PHP fájl lefuttatása
A Jegyzettömb segítségével nézzük meg a pelda1.php fájl forráskódját: Látható, hogy gyakorlatilag egy html dokumentumba ágyaztuk bele a PHP szkriptet, ami beilleszti a html dokumentumba a „Hello World” feliratot.

10 A PHP kód nyitó és zárótagei
1.  <?php echo 'ha XHTML vagy XML dokumentumokat akarsz szolgáltatni, tedd így'; ?> 2.  <script language="php">        echo 'egyes szerkesztők (mint pl FrontPage) nem szeretik              a feldolgozó utasításokat';    </script> 3.  <? echo 'ez a legegyszerűbb, egy SGML processing utasítás'; ?>     <?= kifejezes ?> Ez egy rövidítése ennek: "<? echo kifejezes ?>" 4.  <% echo 'Használhatsz ASP-stílusú tag-eket'; %>    <%= $valtozo; # Ez egy rövidítése ennek: "<% echo . . ." %>

11 Több kódrészlet elhelyezése a HTML dokumentumban
<head> <title>PHP Test</title> </head> <body> <?php if (1 == 1) { ?> <strong>Ez igaz.</strong> } else { <strong>Ez hamis.</strong> } if (1 != 1) { </body> </html>

12 A PHP a változó típusát automatikusan eldönti!
PHP változótípusok Egy kis ismétles: Nyissuk meg Jegyzettömbbel a pelda3.php-t, majd értelmezzük a parancsokat! 8 alapváltozó: boolean (logikai) integer (egész szám) float (lebegőpontos /double/) string (karakterlánc) Összetett típusok: array (tömb) object (objektum) Két speciális típus: resource (erőforrás) NULL A PHP a változó típusát automatikusan eldönti!

13 PHP változótípusok Egészre konvertálás

14 Naptáralkalmazás készítése
Havonta változó háttérkép Év, hónap A hónap napjai

15 A fejlesztés lépései lépés: Egy minta html oldal elkészítése (pl január hó) lépés: A dinamikusan változó tartalmak azonosítása lépés: A dinamikusan változó tartalmak előállításához szükséges php kódok tervezése lépés: A php kódok integrálása a html dokumentumba lépés: Az eredmény tesztelése

16 Egy minta html oldal készítése
Töltsük le a naptáralkalmazáshoz felhasználandó háttérképeket a tantárgy honlapjáról! A HTML dokumentumot az alábbiak szerint hozzuk létre: egysoros táblázat, mely első oszlop 800x600 képpont méretű (ekkorák a háttérképek), a második oszlopa pedig 200x600 képpont méretű; az első cellába illesszük be a januári háttérképet (1.jpg); a második cellába alulra illesztve helyezzük el az év és a hónap feliratát középre rendezve, majd ezek alá a hét napjainak nevét (Hétfő-Vasárnap), illetve 2011 január napjait a megfelelő táblázatos formában; a táblázat mindig hétfővel kezdődjön és vasárnappal végződjön az üresen maradó napokat fel kell tölteni az előző, illetve a következő hónap napjaival; az aktuális hónap napjai feketével jelenjenek meg, az előző ill. követő hónap napjai pedig szürkével;

17 Egy minta html oldal készítése

18 Egy minta html oldal készítése

19 Mentsük el a fájlt utf-8 kódolással

20 Azonosítsuk be a dinamikus tartalmakat!
A háttérkép neve: hónap_sorszáma.jpg Az aktuális év és hónap kitöltése A havi naptár kialakítása (erről egy kicsit később)

21 Tervezzük meg a kódot! A háttérkép neve:
mivel a .jpg képek elnevezése követi a hónapok sorszámát, így a rendszeridőnek megfelelő hónap sorszámát felhasználhatjuk a beillesztendő kép neveként. Getdate($timestamp) függvény A megadott tömbbe betölti az aktuális időpontnak (vagy a megadott $timestamp változónak) megfelelő dátum különböző jellemzőit: "seconds" - a másodpercek száma 0-59 "minutes" - a percek száma 0-59 "hours" - az órák száma 0-23 "mday" - a hónapon belüli nap sorszáma 1-31 "wday" - a hét napjának sorszáma (vasárnap 0 – szombat 6) "mon" - a hónap sorszáma (1-12) "year" - az év (4 számjeggyel) "yday" - az éven belüli nap sorszáma 0-365 "weekday" - a hét napjának a neve (Monday, Tuesday, stb.) "month" - a hónap neve (January, February, stb.)

22 Tervezzük meg a kódot! <?php
// Válasszuk ki a hónapnak megfelelő háttérképet $today=getdate(); echo "<td valign=\"top\" background=\"$today[mon].jpg\"> </td>"; ?> Illesszük ezt be a calendar.html fájl megfelelő helyére, majd mentsük el a fájlt calendar01.php néven.

23 Tervezzük meg a kódot!

24 Az évszám és a hónap nevének kijelzése
<?php $today=getdate(); // Írjuk ki az aktuális évszámot echo "<font face=\"Verdana\" size=\"6\">$today[year]</font></td>"; ?> Illesszük be a fenti kódot a calendar01.php-ba, majd mentsük el azt calendar02.php néven.

25 Az évszám és a hónap nevének kijelzése
Vegyük észre, hogy a getdate itt már akár el is hagyható! (calendar03.php)

26 Az évszám és a hónap nevének kijelzése
A hónap nevének megjelenítése: <?php // Írjuk ki az aktuális hónap nevét // Először hozzunk létre egy tömböt a hónapok nevével $honap = array('Január', 'Február', 'Március', 'Április', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'); // Majd írassuk ki az aktuális dátumban szereplő hónap nevét az előbbi tömbből. // Vegyük észre, hogy a $hónap tömb azon elemét kell kiírni, ahányadik hónapot írjuk minusz 1 // Ennek az az oka, hogy a tömbök indexelése 0-val kezdődik $honapszam = $today[mon]-1; echo "<font face=\"Verdana\" size=\"4\">$honap[$honapszam]</font></td></tr></table>"; ?>

27 Az évszám és a hónap nevének kijelzése

28 Ellenőrizzük le, hogy amit eddig csináltunk az jó-e!
Állítsuk át a rendszeridőt egy tetszőleges dátumra, majd nézzük meg a oldalt egy böngészőben! Megjegyzés: az oldal mindig a szerver dátumbeállításainak megfelelően áll elő. Esetünkben ez megegyezik a kliens időbeállításával is, mivel ugyanazon gépen fut a böngésző is. Érdemes kipróbálni egy szomszéd gépről lekérve ugyanezt az oldalt: ahol XXX.YYY.ZZZ.WWW a másik gép IP címe.

29 for ciklus ! if elágazások !
Most jön a neheze! - a havi naptár előállítása Mit kell tennünk: Meg kell határoznunk, hogy a hónap első napja milyen napra esik. Ki kell számítani, hogy ezen a héten hétfőre milyen nap esett. Meg kell határoznunk, hogy a hónap utolsó napja milyen napra esik. Ki kell számítani, hogy azon a héten a vasárnap milyen napra esik. A két időpont között ki kell számítanunk az eltelt heteket. Ezt követően a kezdő hétfőtől kezdve az eltelt heteken végigfutva ki kell íratnunk a napok sorszámát oly módon, hogy minden hétfőn új sort kezdünk a táblázatban. Ezt fejeljük meg még azzal, hogy a mai nap piros, dőlt, vastag számokkal, az eltérő hónaphoz tartozó napok pedig szürke színnel jelenjenek meg for ciklus ! if elágazások !

30 Most jön a neheze! - a havi naptár előállítása
<?php // A naptárban szereplő legelső nap dátumának meghatározása // Az aktuális hónap első napjához képest meg kell találnunk a megelőző hétfő dátumát // A hónap első napjának időbélyege $firstdaymonth = strtotime('first day of this month'); // Az ezt megelőző hétfő dátuma $firstday = getdate($firstdaymonth); if ($firstday[wday] != 0) $firstmonday = strtotime('Monday this week', $firstdaymonth); else $firstmonday = strtotime('Monday this week', ($firstdaymonth )); strtotime ($string, $timestamp) Megadja a $timestamp időponthoz képest a $string-ben leírt feltételnek megfelelő időpontot (PHP 5.3-tól, használható a fenti szintaxis). Megjegyzés: a PHP a hetet vasárnappal kezdi (unix örökség), így abban az esetben, ha a hónap első napja vasárnapra esik, akkor az azt megelőző hétfő dátumát kell megkeresni.

31 Most jön a neheze! - a havi naptár előállítása
//Számítsuk ki a kiírandó hetek számát // A hónap utolsó napjának dátuma $lastdaymonth= strtotime('last day of this month'); // Az ezt követő Vasárnap dátuma $lastsunday = strtotime('Sunday this week', $lastdaymonth); // A hetek számának meghatározása $weeknum = ($lastsunday - $firstmonday) / / 7; // A hónap utolsó napjának neve $lastday = getdate($lastdaymonth); if ($lastday[wday] != 0) $weeknum = $weeknum + 1; Megjegyzés: a hetek száma tört értékű. Így ha ennek az egészrészét vesszük, akkor pontosan egy héttel rövidebb időszakra készül el a naptár (kivéve azt az esetet, ha a hónap utolsó napja vasárnapra esik).

32 Jöhet a for ciklus! // For ciklus az összes érintett hétre
$caldate = $firstmonday; // Kezdőértékadás a dátumváltozóhoz for ($i=0; $i<(floor($weeknum)); $i++) { echo "<tr align=\"center\">"; // Megnyitjuk a táblázat következő sorát for ($j=0; $j<7; $j++) // For ciklus a hét napjaira $caldatearray = getdate($caldate); // Az időbélyeget felbontjuk átalakítjuk dátumtömb formátumra if ($today[mon] != $caldatearray[mon]) // Ha a nap nem az aktuális hónaphoz tartozik, akkor szürkével jelenjen meg echo "<td><font color=\"#AAAAA\">$caldatearray[mday]</font></td>"; else if ($today[mday] == $caldatearray[mday]) echo "<td border=\"1\"><font color=\"#FF0000\"><b><i><u>$caldatearray[mday]</u></i></b></font></td>"; // Ha a mai nap, akkor pirossal echo "<td>$caldatearray[mday]</td>"; // Ha az aktuális hónaphoz tartozik, akkor pedig feketével } $caldate = strtotime('next day',$caldate); echo "</tr>"; ?>

33 Nézzük meg az eredményt!

34 Ne álljunk meg félúton! A hónaphoz tartozó vasárnapokat jelöljük szintén pirossal! Ez egy újabb if elágazás beágyazását jelenti. Ha a hónaphoz tartozik egy nap, és az nem a mai nap, akkor piros álló betűvel jelenjen meg a nap sorszáma a naptárban! if ($today[mon] != $caldatearray[mon]) // Ha a nap nem az aktuális hónaphoz tartozik, akkor szürkével jelenjen meg echo "<td><font color=\"#AAAAA\">$caldatearray[mday]</font></td>"; else { if ($today[mday] == $caldatearray[mday]) echo "<td><font color=\"#FF0000\"><b><i><u>$caldatearray[mday]</u></i></b></font></td>"; //Ha a mai nap, akkor piros, dőlt, aláhúzott if ($caldatearray[wday] == 0) echo "<td><font color=\"#FF0000\"><b>$caldatearray[mday]</b></font></td>"; //Ha vasárnap, akkor piros vastag betűvel echo "<td>$caldatearray[mday]</td>"; // Ha egyéb napról van szó, akkor feketével }

35 Kész a naptárunk!

36 Véglegesítsük az alkalmazást, majd teszteljük!
A calendar06.php állományt mentsük el index.php néven is az e:\webprog\htdocs\calendar könyvtárba! Ezt követően a naptáralkalmazást elérhetjük a URL-n is, hiszen a httpd.conf fájlban megadtuk az index.php-t, mint lehetséges indexfájlt! Állítsuk át a rendszeridőt különböző értékekre, majd nézzük meg a dátumnak megfelelő naptárlapokat a böngészővel.


Letölteni ppt "PHP fordító telepítése és integrálása az Apache http szerverbe."

Hasonló előadás


Google Hirdetések