9.01. Bevezetés, alapfogalmak

Default book

A PHP rövid története

Erről nem írok semmit. Maradjunk annyiban, hogy 1994-től merült fel a probléma, amire 1995-től létezik a nyelv. Jelenleg a 8.xx verziónál tartunk.

Mi a PHP?

Egy majdnem általános célú programozási nyelv, amely mára sokféle területen alkalmazható, amit a Weben keresztül meg lehet oldani. Dinamikus oldalak, adatbázis-kezelés, akár ügyviteli alkalmazások, levelezés, portálok, grafikai alkalmazások, file-kezelés, távoli adminisztráció, stb.

Jellemző tulajdonságai

  • A program egy vagy több szimpla szövegfájl, amit nem kell lefordítani.

  • A programok egy szerveren, általában WEB szerveren futnak.

  • A szerver értelmezi a programsorokat és lefuttatja azokat.

  • A programok kimenete olyan szöveg fájl, amit a webszerver kiküld a böngészőnek

  • A böngésző a megkapott szöveget HTML oldalként értelmezi és ennek alapján megjeleníti.

A böngésző és a szerver közötti kommunikáció folyamata:

  • A böngészőbe a felhasználó beír egy URL-t,L rákattint egy linkre, ekkor úgynevezett GET metódusú kérést küld el a böngésző a szervernek, vagy egy űrlapon rákattint az elküldés gombra, ekkor POST metódusú kérést küld a szervernek a böngésző. A kérés tulajdonképpen egy adatcsomag. A kérés részei:

    • A kérésben elmegy az URL, a metódus fajtája (POST vagy GET), a használandó protokoll (HTTP 1.0 vagy HTTP 1.1)

    • POST metódus esetén a kérésben elmennek az űrlapban kitöltött adatmezők adatai

    • A böngésző neve, és speciális tulajdonságai

    • A böngésző által lekezelni képes speciális adatfajták szabványos nevei

    • A böngészőben tárolt és az adott domainhez tartozó cookie-k adatai

  • Ha az URL a szerveren .html, .htm ,.gif, .jpg, .AVI, .mpg, stb… file-t jelöl meg, akkor a WEBszerver kikeresi a saját háttértárán a megfelelő fájlt és elküldi a böngészőnek különböző plusz, úgynevezett fejlécadatok (header) kíséretében. A headerben lévő adatok az alábbiak lehetnek:

    • A kódolás nyelve, a cache-ek működésére vonatkozó parancsok,

    • Az esetlegesen elküldendő cookie-k

    • A SESSION-ökhöz tartozó un. session cookie-k.

  • Ha az URL .php kiterjesztésű file-t jelöl, akkor a webszerver átadja az URL-t a PHP motornak.

    • A PHP motor megkeresi a háttértáron a megadott file-t

    • Betölti szintaktikailag ellenőrzi a betöltött php file tartalmát, majd elkezdi értelmezni és végrehajtani azt.

    • Ha szükséges a PHP-hez konfigurált egyéb modulokat elindít, kommunikál velük, mint pl. egy SQL szerver

    • A PHP kód segítségével a kimenetre lehet küldeni header parancsokat, cookie-k és session-ök adatait, mielőtt bármi HTML kódot kiküldene a PHP motor.

    • A végrehajtás során a PHP oldalakon keverni lehet a HTML és a PHP kódot. Ha az értelmező HTML kód részt talál, akkor azt a kódot kiküldi a kimenetre változatlanul.

    • A program futása során kiíró utasításokkal előállítja a HTML kimenetet és kiküldi a kimenetre.

    • A PHP motor által előállított HTML kimenetet a webszerver kapja meg.

    • A WEbszerver a tartalmat kiküldi a böngészőnek.

  • A böngésző a megkapott információt betölti és értelmezi.

    • Ha a kódban javascript, java vagy egyéb nem kifejezetten HTML kód található, akkor a böngésző elindítja a kliens számítógépre telepített megfelelő feldolgozó modult.

Egy HTML és egy PHP oldal szerkezete

Mielőtt továbbmennénk nézzük, mit akarunk programozni? Hogyan is néz ki egy HTML oldal:

<!DOCTYPE HTML>
<HTML>
<HEAD>
  <title>az oldal címe</title>
</HEAD>
<BODY>
   Próba web oldal
</BODY>
</HTML>

Na ez nagy durranás volt. A kisbetű-nagybetű kérdés nem számít. A bekezdéses írásmódot az áttekinthetőségért használok, de mint látjuk később, ez rendkívül fontos! A böngészők a sor vége jelet, a szóközöket és a tabulátor jeleket kihagyják, ezért akár az egészet egy sorba is írhatnánk. A fenti HTML oldalt az alábbi php scripttel tudjuk előállíttatni:

<!DOCTYPE HTML>
<HTML>
<HEAD>
  <title>az oldal címe</title>
</HEAD>
<BODY>
<?php
      echo "Próba web oldal";
?>
</BODY>
</HTML>

Az igazi kód itt van:

Tisztán látszik, hogy a program és a a weboldal szerkezete nagy vonalakban ugyanaz, de azért vannak különbségek. A PHP értelmező a kód első sorait változatlanul továbbítja a Web szervernek, de amikor  a <?php tag-hez ér, értelmezi az ott lévő sorokat, és az echo paranccsal kiírja a Web szerver felé az echo utáni szöveget.

A következő sorban lévő ?> tag jelzi az értelmezőnek a PHP script végét.

Egy oldalon többször is megnyithatjuk a scriptet és bezárhatjuk, azaz keverhetjük a php és a HTML kódot.

Az alábbi lehetőségeink vannak arra, hogy php scriptet helyezzünk el egy oldalon: