online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

Online dokumentumok - kep
  

A PHP - Mi a PHP?, Valtozók, Dinamikus valtozók, Vezérlési szerkezetek, A switch utasítas



felso sarok

egyéb tételek

jobb felso sarok
 
 
bal also sarok   jobb also sarok

A PHP


Mi a PHP?

A PHP nyelv túlnőtt eredeti jelentőségén. Születésekor csupán egy makrókészlet volt, amely személyes honlapok karbantartására készült. Innen ered neve is: Personal Home Page Tools. Később a PHP képességei kibővültek, így egy önállóan használható programozási nyelv alakult ki, amely képes nagyméretű webes adatbázis-alapú alkalmazások működtetésére is.

A PHP nyelv népszerűsége képességeinek bővülésével folyamatosan nőtt. A NetCraft elemző cég (http://www.netcraft.com/) felmérései szerint a PHP-t 2000 februárjában 1,4 millió kiszolgálón használták és októberre ez a szám 3,3 millióra ugrott. Ezzel megközelítette a Microsoft IIS kiszolgálók számát, ami 3,8 millió. Az E-Soft szerint a PHP a legnépszerűbb Apache modul, a ModPerlt is maga mögé utasítva.

A PHP jelenleg hivatalosan a PHP: Hypertext Preprocessor elnevezést használja.

Tulajdonképpen kiszolgálóoldali programozási nyelv, amit jellemzően HTML oldalakon használnak. A hagyományos HTML lapokkal ellentétben azonban a kiszolgáló a PHP parancsokat nem küldi el az ügyfélnek, azokat a kiszolgáló oldalán a PHP-értelmező dolgozza fel. A programjainkban lévő HTML elemek érintetlenül maradnak, de a PHP kódok lefutnak. A kódok végezhetnek adatbázis-lekérdezéseket, dinamikusan létrehozhatnak képeket, fájlokat olvashatnak és írhatnak, kapcsolatot létesíthetnek távoli kiszolgálókkal . a lehetőségek száma végtelen.

A PHP kódok kimenete a megadott HTML elemekkel együtt kerül az ügyfélhez.



Változók

A változók különleges tárolók, amiket abból a célból hozunk létre, hogy értéket helyezzünk el bennük. A változók egy dollárjelből ($) és egy .tetszőlegesen. választott névből tevődnek össze. A név betűket, számokat és aláhúzás karaktereket (_) tarta 151g62b lmazhat (számmal azonban nem kezdődhet!), szóközöket és más olyan karaktereket, amelyek nem számok vagy betűk, nem. Íme néhány érvényes változónév:

$a;

$egy_hosszabb_valtozonev;

$elalszom_zzzzzzzzzzzzzz;

Ne feledjük, hogy a pontosvessző (;) a PHP utasítás végét jelzi, így az előzőekben a pontosvessző nem része a változók nevének.

A változók adatokat . számokat, karakterláncokat, objektumokat, tömböket

vagy logikai értékeket . tárolnak, tartalmuk bármikor módosítható.

Amint látjuk, rengeteg féle nevet adhatunk változóinknak, bár a csak számokból álló változónevek nem szokványosak. Változó létrehozásához (deklarálásához, vagyis bevezetéséhez) egyszerűen csak bele kell írni azt a programunkba. Létrehozáskor általában rögtön értéket is szoktunk adni a változónak.

$szam1 = 8;

$szam2 = 23;

Itt két változót hoztunk létre és a hozzárendelő műveletjellel (=) értéket is adtunk azoknak. Az értékadásról bővebben a Műveletjelek és kifejezések című részben tanulunk, az óra későbbi részében. Miután értéket adtunk változóinknak, úgy kezelhetjük azokat, mintha maguk lennének az értékek. Vagyis a fenti példánál maradva a létrehozás után írt

print $szam1;

hatása megegyezik a

print 8;

hatásával, feltéve, hogy a $szam1 változó értéke 8 maradt.


Dinamikus változók

Változót tehát úgy hozunk létre, hogy egy dollárjel után írjuk a változó nevét. Szokatlan, ám hasznos, hogy a változó nevét is tárolhatjuk változóban. Tehát ha az alábbi módon értéket rendelünk egy változóhoz

$felhasznalo = "Anna";

az megegyezik azzal, mintha ezt írnánk:

$tarolo = "felhasznalo";

$$tarolo = "Anna";

A $tarolo változó a "felhasznalo" szöveget tartalmazza, ezért a $$tarolo-t

úgy tekinthetjük, mint egy dollárjelet, melyet egy változó neve követ ($tarolo),

a $tarolo viszont ismét csak egy változó, amit a PHP a változó értékével helyettesít, vagyis "felhasznalo"-val. Tehát a fenti kifejezés a $felhasznalo-val

egyenértékű.



Vezérlési szerkezetek

Az előző órában létrehozott programok minden futtatáskor ugyanazt az eredményt adták, mindig ugyanazok az utasítások hajtódtak végre ugyanabban a sorrendben.

Ez nem biztosít túl nagy teret a rugalmasságnak.

Ebben az órában néhány olyan szerkezettel ismerkedünk meg, melyek segítségével programunk alkalmazkodhat a körülményekhez. A következőket tanuljuk meg:

. Hogyan használjuk az if szerkezetet arra, hogy bizonyos sorok csak adott

feltételek teljesülése mellett hajtódjanak végre?

. Hogyan adhatunk meg csak bizonyos feltételek nem teljesülése esetén végrehajtandó műveleteket?

. Hogyan használjuk a switch utasítást, hogy egy kifejezés értékétől függően

hajtsunk végre utasításokat?

. Hogyan ismételjük egy kódrészlet végrehajtását a while utasítás segítségével?

. Hogyan készíthetünk elegánsabb ciklusokat a for utasítás segítségével?

. Hogyan lépjünk ki a ciklusokból?

. Hogyan ágyazzuk egymásba a ciklusokat?



Elágazások

A legtöbb program feltételeket értékel ki és azok eredményének megfelelően

változtatja viselkedését. A lehetőséget, hogy a PHP oldalak tartalma dinamikussá váljék, az teszi lehetővé, hogy a programok kimenete bizonyos feltételektől függhet. A legtöbb programozási nyelvhez hasonlóan a PHP 4-es változata is biztosítja erre a célra az if utasítást.


Az if utasítás

Az if utasítás kiértékeli a zárójelek közötti kifejezést. Ha a kifejezés értéke igaz, az utasításhoz tartozó programrész végrehajtódik. Ha a kifejezés hamis, a blokk egyszerűen figyelmen kívül marad. Ez teszi lehetővé a programoknak, hogy döntéseket hozzanak.

if ( kifejezés )


Az 5.1. példaprogramban csak akkor hajtódik végre az if utáni rész, ha a kifejezés értéke igaz

5.1. program Az if utasítás

1: <html>

2: <head>

3: <title>5.1. program Az if utasítás</title>

4: </head>

5: <body>

6: <?php

7: $hangulat = "boldog";

8: if ( $hangulat == "boldog" )

9:

12: ?>

13: </body>

14: </html>


Az if utasítás else ága

Amikor az if utasítást használjuk, gyakran szeretnénk, hogy legyen egy olyan

alternatív programrész, amely akkor hajtódik végre, ha a vizsgált feltétel nem igaz.

Ezt úgy érhetjük el, hogy az if utasítás programrésze után kiírjuk az else kulcsszót, majd az alternatív programrészt. A séma a következő:

if (feltétel)


else


Az 5.2. példaprogram az 5.1. példaprogram kiegészített változata. Egy olyan

programblokkot tartalmaz, amely akkor hajtódik végre, ha a $hangulat értéke

nem "boldog".


A switch utasítás

A switch utasítás egy lehetséges módja annak, hogy egy kódrészletet egy kifejezés értékétől függően hajtsunk végre. Van azonban néhány különbség az imént tanult if és a switch között. Az if-et az elseif-fel használva több kifejezés

értékétől tehetjük függővé, hogy mi történjen. A switch esetében a program

csak egy kifejezést vizsgál meg és annak értékétől függően különböző sorokat

futtat. A kifejezésnek egyszerű típusnak kell lennie (szám, karakterlánc vagy

logikai érték). Az if feltétele csak igaz vagy hamis lehet, a switch kifejezését

akárhány értékkel összehasonlíthatjuk. De nézzük inkább az általános szerkezetet:

switch ( kifejezés )


A switch utasítás kifejezése gyakran egyszerűen egy változó. A switch-hez tartozó programblokkban vannak a case címkék. Az utánuk írt érték kerül összehasonlításra a switch kifejezésének értékével. Ha értékük megegyezik, a program ott folytatódik, a break utasítás pedig azt eredményezi, hogy a program futása a switchblokkja utáni részre kerül. Ha a break-et elfelejtjük, a program átlép a következő

case kifejezéshez tartozó programrészre és azt is végrehajtja. Ha a kifejezés értéke egyik előző értékkel sem egyezik és a switch blokkján belül szerepel default címke, akkor az utána levő programrész kerül végrehajtásra. Ez sokszor bosszantó, de néha hasznos is lehet.


Ciklusok

Most már láttuk, hogyan kell döntések eredményétől függően különböző programrészleteket futtatni. PHP programokkal arra is képesek vagyunk, hogy megmondjuk, hányszor kell lefuttatni egy adott programrészt. Erre valók a ciklusok. Segítségükkel elérhetjük, hogy egyes programrészletek ismétlödjenek. Szinte kivétel nélkül igaz, hogy egy ciklus addig fut, amíg egy feltétel teljesül, vagy meg nem mondjuk, hogy fejeződjön be az ismétlés.


A while ciklus

A while ciklus szerkezete rendkívül hasonlít az if elágazáséhoz:

while ( feltétel )


Amíg a while feltétele igaz, a hozzá tartozó programrész újból és újból végrehajtódik. A programrészen belül általában megváltoztatunk valamit, ami hatással lesz a while feltételére; ha ezt nem tesszük meg, a ciklusunk a végtelenségig futni fog. Az 5.6. példaprogram a while ciklus segítségével írja ki a kettes szorzótáblát.

5.6. program A while ciklus

1: <html>

2: <head>

3: <title>5.6. program A while ciklus</title>

4: </head>

5: <body>

6: <?php

7: $szamlalo = 1;

8: while ( $szamlalo <= 12 )

9:

13: ?>

14: </body>

15: </html>

A példában létrehoztuk a $szamlalo nevű változót. A while kifejezés feltétele

megvizsgálja, hogy ez a változó mekkora. Ha az érték nem nagyobb, mint 12,

a ciklus folytatódik (vagy elkezdődik). A ciklusban a $szamlalo értéke és annak

kétszerese kiírásra kerül, majd a $szamlalo értéke eggyel nő. Ez az utasítás

rendkívül fontos, mert ha elfelejtjük, a while feltétele soha nem lesz hamis, ezért végtelen ciklusba kerülünk.


A for ciklus

A for semmi újat nem nyújt a while ciklushoz képest. A for ciklus használatával azonban sokszor takarosabb, biztonságosabb módon közelíthetjük meg ugyanazt a problémát. Korábban . az 5.6. példaprogramban . létrehoztunk egy változót a while cikluson kívül, majd a while kifejezése megvizsgálta ennek a változónak az értékét. Végül a változó értékét a ciklus végén eggyel növeltük. A for ciklus mindezt egyetlen sorban teszi lehetővé. Ez tömörebb programot eredményez és ritkábban fordulhat elő, hogy a változót elfelejtjük növelni, ami végtelen ciklust okoz.

for ( változó_hozzárendelése; feltétel; számláló_növelése)


Az ezt megvalósító egyenértékű while:

változó_hozzárendelése;

while ( feltétel )


A zárójelekben levő kifejezéseket pontosvesszővel kell elválasztanunk egymástól.

Az első kifejezés rendszerint egy számlálónak ad kezdeti értékét, a második egy feltétel, ami alapján eldől, hogy folytatódik-e a ciklus; a harmadik egy számlálót növelö utasítás.


Tömbök

A tömbök és a kezelésüket segítő eszközök nagy mértékben növelik a PHP 4

programok rugalmasságát. Ha jól értünk a tömbökhöz, képesek vagyunk nagy

méretű, összetett adatokat tárolni és kezelni.

Ebben az órában bemutatjuk a tömböket és néhány beépített függvényt, amelyek segítik a velük való boldogulást.


Mit nevezünk tömbnek?

Mint már tudjuk, a változó egy .vödör., amiben egy értéket lehet tárolni. Változók segítségével olyan programot írhatunk, amely információt tárol, dolgoz fel és ír ki.

Egy változóban azonban sajnos csak egy értéket tárolhatunk. A tömb olyan különleges szerkezetű változó, amelyben nincs ilyen korlátozás. Egy tömbbe annyi adatot lehet beletenni, amennyit csak akarunk (amennyi memóriánk van). Minden elemet egy szám vagy egy karakterlánc segítségével azonosíthatunk. Ha a változó vödör., akkor a tömb .iratszekrény., tehát olyan tároló, amelyben sok-sok elemet tárolhatunk.


Tömb létrehozása vagy elem hozzáadása a tömbhöz

szögletes zárójel segítségével


Tömböket úgy is létrehozhatunk, illetve meglevő tömbökhöz új elemeket adhatunk, ha a tömb neve után olyan szögletes zárójelpárt írunk, amelynek belsejében nincs index.

Hozzuk létre újra a $felhasznalok nevű tömböt:

$felhasznalok[] = "Berci";

$felhasznalok[] = "Mariska";

$felhasznalok[] = "Aladár";

$felhasznalok[] = "Eleonóra";

Figyeljük meg, hogy nem kellett számot írnunk a szögletes zárójelbe. A PHP 4

automatikusan meghatározza az indexértéket, így nem kell nekünk bajlódni azzal, hogy kiszámítsuk a következő olyan indexet, amelyben még nincs érték.

Persze írhattunk volna számokat is a szögletes zárójelbe, de ez nem tanácsos.

Nézzük a következő programrészletet:

$felhasznalok[0] = "Berci";

$felhasznalok[200] = "Mariska";

A tömbnek így mindössze két eleme van, de az utolsó elem indexe 200. A PHP 4 nem fog értéket adni a köztes elemeknek, ami félreértésekre adhat okot az elemek elérésekor.

Tömbök létrehozása mellett a tömbváltozók szögletes zárójele segítségével

az array() függvénnyel létrehozott tömb végéhez új elemet is adhatunk.

Az alábbi kis programrészletben létrehozunk egy tömböt az array() függvény

segítségével, majd új elemet adunk a tömbhöz szögletes zárójellel.

$felhasznalok = array ("Berci", "Mariska", "Aladár", "Eleonóra");

$felhasznalok[] = "Anna";



Fájlok beágyazása az include() függvénnyel

Az include() függvény lehetőséget ad arra, hogy fájlt ágyazzunk be a PHP dokumentumokba.

A fájlban szereplő PHP kód úgy hajtódik végre, mintha a fődokumentum

része lenne, ami hasznos, ha egy többoldalas programban külső kódokat szeretn

énk beágyazni.

Eddig, ha olyan kódot írtunk, amelyet többször is fel akartunk használni, minden egyes helyre be kellett másolnunk azt. Ha hibát találtunk benne vagy lehetőségeit tovább akartuk bővíteni, mindenütt át kellett írnunk. Ezekre a problémákra megoldás az include() függvény. Gyakran használt függvényeinket külső fájlba menthetjük és az include() függvénnyel futási időben tölthetjük be programunkba.

Az include() függvény paramétere a fájl elérési útja. A 10.1. példában látható,

hogyan ágyazható be egy fájl a PHP kódba az include() függvény segítségével.

10.1. program Az include() használata

1: <html>

2: <head>

3: <title>10.1. program Az include() használata</title>

4: </head>

5: <body>

6: <?php

7: include("10.2.program.php");

8: ?>

9: </body>

10: </html>


Fájl megnyitása írásra, olvasásra, hozzáfűzésre

Mielőtt elkezdünk dolgozni egy fájllal, meg kell nyitnunk írásra vagy olvasásra.

Ezt az fopen() függvénnyel tehetjük meg. A függvény paraméterében meg kell

adni a fájl elérési útját és a megnyitási módot. A legtöbbször használt módok

az olvasás ("r"), írás ("w"), hozzáfűzés ("a"). A függvény visszatérési értéke

egy egész szám. Ez az egész szám az úgynevezett fájlazonosító, amelyet változóként tárolhatunk. Ezzel hivatkozhatunk később a fájlra. Fájl olvasásra való megnyitásához a következőt kell beírnunk:

$fa = fopen( "proba.txt", 'r' );

Az írásra való megnyitáshoz a következőt:

$fa = fopen( "proba.txt", 'w' );

Ha a fájlt hozzáfűzésre akarjuk megnyitni, tehát nem kívánjuk felülírni a tartalmát, csak a végéhez szeretnénk fűzni valamit, a következőt kell tennünk:

$fa = fopen( "proba.txt", 'a' );

Az fopen() false értékkel tér vissza, ha valamiért nem tudta megnyitni a fájlt,

ezért érdemes mindig ellenőrizni, hogy sikeres volt-e a megnyitás. Ezt például

az if vezérlési szerkezettel tehetjük meg:

if ( $fa = fopen( "proba.txt", "w" ) )


Esetleg használhatunk logikai műveletet, hogy megszakítsuk a végrehajtást,

ha a fájl nem létezik:

( $fa = fopen( "proba.txt", "w" ) ) or die

ĺ ("A fájl sajnos nem nyitható meg!");

Ha az fopen() true értékkel tér vissza, a die() nem hajtódik végre, különben

a kifejezés jobb oldalán a die() kiírja a paraméterében szereplő karakterláncot és

megszakítja a program futását.

Amikor befejeztük a munkát egy fájllal, mindig be kell zárnunk azt. Ezt az fclose()

függvénnyel tehetjük meg, amelynek paraméterében azt a fájlazonosítót kell megadnunk,

amelyet egy sikeres fopen() végrehajtása során kaptunk:

fclose( $fa );


Olvasás fájlból

A PHP-ben egy fájlból különböző függvények segítségével bájtonként, soronként vagy karakterenként olvashatunk.


Sorok olvasása fájlból az fgets() és

feof() függvényekkel

Miután megnyitottunk egy fájlt, beolvashatjuk a tartalmát sorról sorra, az fgets() függvénnyel. A függvény paraméterében meg kell adni az olvasandó fájl azonosítóját (amit az fopen() függvény ad a megnyitáskor), továbbá második paraméterként kell adnunk egy egész számot is, amely meghatározza, hogy legfeljebb hány bájtot olvasson ki a PHP, amíg sorvége vagy fájlvége jelet nem talál. Az fgets() függvény addig olvas a fájlból, amíg újsor karakterhez ("\n") nem ér, a megadott bájtnyi adatot ki nem olvassa vagy a fájl végét el nem éri.

$sor = fgets( $fa, 1024 ); // ahol az $fa az fopen() által visszaadott fájlazonosító

Tudnunk kell tehát, mikor érünk a fájl végére. Ezt az feof() függvény adja meg,

melynek visszatérési értéke true, ha a fájl végére értünk, egyébként false.

A függvény paraméterében egy fájlazonosítót kell megadni.

feof( $fa ); // ahol az $fa az fopen() által visszaadott

ĺ fájlazonosító

A 10.9. példában láthatjuk, hogyan kell egy fájlt sorról sorra beolvasni.

181 Fájlok használata


10.9. program Fájl megnyitása és sorról sorra olvasása

1: <html>

2: <head>

3: <title>10.9. program Fájl megnyitása és sorról sorra

olvasása</title>

4: </head>

5: <body>

6: <?php

7: $fajlnev = "proba.txt";

8: $fa = fopen( $fajlnev, "r" ) or die("$fajlnev nem

nyitható meg");

9: while ( ! feof( $fa ) )

10:

14: fclose($fa);

15: ?>

16: </body>

17: </html>


Az fopen() függvénnyel próbáljuk olvasásra megnyitni a fájlt. Ha a kísérlet sikertelen, a die() függvénnyel megszakítjuk a program futását. Ez legtöbbször akkor történik meg, ha a fájl nem létezik vagy (UNIX rendszerben) nincs megfelelő jogosultságunk a megnyitásra. Az olvasás a while ciklusban történik. A while ciklus minden ismétlés alkalmával megnézi az feof() függvénnyel, hogy az olvasás elért-e a fájl végéhez, tehát a ciklus addig olvas, amíg el nem éri a fájl végét. Az fgets() minden ismétlésnél kiolvas egy sort vagy 1024 bájtot. A kiolvasott karaktersorozatot a $sor változóba mentjük és kiírjuk a böngészőbe. Minden kiírásnál megadunk egy <br> címkét, hogy a szöveg olvashatóbb legyen, végül bezárjuk a megnyitott állományt.


Fájlba írás és hozzáfűzés

A fájlba írás és a hozzáfűzés nagyon hasonlítanak egymáshoz. Az egyetlen különbség az fopen() hívásában rejlik. Amikor írásra nyitjuk meg a fájlt, akkor az fopen() második paramétereként a "w" karaktert kell megadnunk:

$fa = fopen( "proba.txt", "w" );

Minden írási próbálkozás a fájl elején történik. Ha a fájl még nem létezne, a rendszer létrehozza azt. Ha a fájl létezik, tartalma felülíródik a megadott adatokkal.

Ha a fájlt hozzáfűzésre nyitjuk meg, az fopen() második paramétereként az "a"

karaktert kell megadnunk:

$fa = fopen( "proba.txt", "a" );

Hozzáfűzésnél minden adat a fájl végére íródik, megtartva az előző tartalmat.

Fájlba írás az fwrite() és fputs() függvényekkel

Az fwrite() függvény paramétereként egy fájlazonosítót és egy karakterláncot

kell megadni. A karakterlánc a megadott fájlba íródik. Az fputs() ugyanígy

működik.

fwrite( $fa, "hello világ" );

fputs( $fa, "hello világ" );


A 10.13. példában először az fwrite() függvény használatával egy fájlba írunk, majd az fputs() függvénnyel adatokat fűzünk hozzá.


10.13. program Fájlba írás és hozzáfűzés

1: <html>

2: <head>

3: <title>10.11. program Fájlba írás és

hozzáfűzés</title>

4: </head>

5: <body>

6: <?php

7: $fajlnev = "proba.txt";

8: print "$fajlnev fájlba írás";

9: $fa = fopen( $fajlnev, "w" ) or die("$fajlnev nem

nyitható meg");

10: fwrite ( $fa, "Hello világ\n");

11: fclose( $fa );

12: print "$fajlnev fájlhoz hozzáfűzés";

13: $fa = fopen( $fajlnev, "a" ) or die("$fajlnev nem

nyitható meg");

14: fputs ( $fa, "És más dolgok");

15: fclose( $fa );

16: ?>

17: </body>

18: </html>

0

Találat: 558


Felhasználási feltételek