PHP 1. – Alapismeretek

A PHP szerver oldali script nyelv, így ahhoz, hogy programjainkat futtatni tudjuk, szükség lesz egy olyan webszerverre, amelyen PHP értelmező is telepítve van. Az otthoni gyakorláshoz legcélszerűbb egy Apache webszervert telepíteni, és utána a PHP-t. Mindkét rendszer szabadon letölthető és használható

Telepítő anyagok:

Ajánlott irodalom: PHP kézikönyv

A PHP kódok használata

A PHP kód – a Javascripthez hasonlóan – a HTML kódba van beépítve. Mivel azonban ezt a szerver hajtja végre, a böngésző már (az esetleges hibaüzenetektől eltekintve) nem lát belőle semmit.

A PHP kódot legtöbbször a <?php és ?> határoló elemekkel különítjük el a HTML-kódtól:

<html>
<head><title>PHP minta</title></head>
<body>
<?php
  print "A te IP-címed: ".$_SERVER['REMOTE_ADDR']."\n";
?>
</body>
</html>

Ebből a böngészőhöz a következő jut el: (természeresen az IP-cím akármi más is lehet)

<html>
<head><title>PHP minta</title></head>
<body>
A te IP-címed: 157.171.181.110
</body>
</html>

Szintaktika

A PHP szintaxisa is a C nyelven alapul. A program utasítások egymásutánja. Minden utasítást pontosvessző (;) zár le. Több utasítást blokkba foglalhatunk kapcsos zárójelek – {} – segítségével.

A ha PHP módból egy elágazás, vagy ciklus közben lépünk ki és vissza, a köztes HTML kód annak megfelelően íródik ki, hogy a végrehajtás során hányszor kerül oda a vezérlés:

<?php 
if ($igazez)
   { ?> <b>Igaz a változó tartalma</b> <?php }
else
   { ?> <b>Hamis a változó tartalma</b> <?php }

for($i=0;$i<5;$i++)
  { ?> Maga mindent ötször mond <br> <?php }
?>

A fenti kód a várakozásoknak megfelelően az $igazez változó értékének megfelelő feliratot írja ki, majd pedig ötször azt hogy "Maga mindent ötször mond".

Változók:

Fontos, hogy a PHP-ban minden változó neve dollárjellel ($) kezdődik.
A változók hatásköréről lásd a kézikönyvet.

Vezérlési szerkezetek

Nagyjából, mint a JavaScriptben

HTML kód kiírása

Erre többféle megoldás is van. A leggyakrabban használt a print 'szöveg';.

Stringek

Stringeket kétféleképpen adhatunk meg: vagy aposztrófok közé zárva: 'szöveg' vagy idézőjelek közé: "másik szöveg". Ez utóbbinak az a nagy előnye, hogy változók tartalmát is egyszerűen beszúrhatjuk:

<?php 
$a=10;$b=20;
print "Az a változó értéke: $a. A b változóé $b.";
?>

A fenti kód eredménye: Az a változó értéke: 10. A b változóé 20.

Stringeket a pont (.) operátorral lehet egymás után csatolni.

Órai feladat: írjunk egy olyan php scriptet, ami egy 10x10-es szorzótáblát rajzol ki.

Formok kezelése

Formok esetén az adatok átadása kétféleképp történhet: GET vagy POST módszerrel. GET módszer esetén az adatok az URL-ben kerülnek átadásra, egy kérdőjel után: script.php?nev=Jani&szulhely=Budapest POST-olt adatok esetén pedig a HTTP fejlécben küldődnek át, így külső szemlélő számára láthatatlanok.

A módszert a form definiálásakor lehet megadni:

<form name="form1" action="script.php" method="get">
Név: <input type="text" name="nev"><br>
Születési hely: <input type="text" name="szulhely">
<input type="submit" value="Mehet">
</form>

A formok által küldött adatok a feldolgozó PHP scriptben egy asszociatív tömbben adódnak át, melynek neve $_GET vagy $_POST. A fenti formot feldolgozó script.php tehát például a következő lehet:

<html>
<head><title>PHP minta</title></head>
<body>
<?php
  print "A te neved: ".$_GET['nev']."<br>";
  print "Születési helyed: ".$_GET['szulhely']."<br>";
?>
</body>
</html>

A formot feldolgozó script természetesen ugyanaz is lehet, mint az azt generáló, ilyenkor nem kell a formnál az 'action' értéket megadni:

<html>
<head><title>PHP minta</title></head>
<body>
<?php
if (isset($_GET['nev']))
{
  print "A te neved: ".$_GET['nev']."<br>";
  print "Születési helyed: ".$_GET['szulhely']."<hr>";
}
?>
<form name="form1" method="get">
Név: <input type="text" name="nev"><br>
Születési hely: <input type="text" name="szulhely"><br>
<input type="submit" value="Mehet">
</form>
</body>
</html>

Itt az isset($változó) függvény értéke igaz, ha $változó létezik. Ezt azért kell ellenőrizni, mert az oldal első betöltésekor még nem lesznek átadott értékek, így azokat ki sem irathatjuk.

Órai feladat: Készítsünk olyan weboldalt, amely kívánság szerinti méretű szorzótáblát rajzol ki. -->

Superglobal változók

A php scriptben bárhol (akár függvényeken belülről is) elérhetők a következő, asszociatív tömb típusú változók, melyek különféle információkat tartalmaznak a script hívásáról, futási környezetéről:

Részletesebb leírás.

Házi feladat: Szöveg kódolása/dekódolása számkód alapján. A kódolás egyszerű: A számkód számjegyeinek értékével toljuk el a kódolandó szöveg karaktereinek kódját úgy, hogy ha 255-nél nagyobb lenne, akkor 32-től folytatódjon. Példa:

szöveg: "Titkos duma"; számkód: "123".

Szöveg:Titkos duma
eltolás:12312312312
Kódolva:Ukwlqv!fxnc

ebből a kódolt szöveg: "Ukwlqv!fxnc"

A dekódolás ennek fordítottja. -->