Alapok | |
PHP: személyes honlaptól a portálig | 3 |
Mi a PHP? | 4 |
Mire való a PHP? | 4 |
A PHP 5 újdonságai | 5 |
A Zend Engine | 6 |
Miért a PHP? | 6 |
A fejlesztés sebessége | 6 |
A PHP nyílt forráskódú | 7 |
Teljesítmény | 7 |
Hordozhatóság | 7 |
A könyv második kiadásának újdonságai | 8 |
Összefoglalás | 8 |
Kérdezz-felelek | 8 |
Ismétlés | 9 |
Ismétlő kérdések | 9 |
Válaszok | 9 |
Gyakorlatok | 9 |
A PHP telepítése | 11 |
Operációs rendszerek, kiszolgálók, adatbázisok | 12 |
A PHP és a különböző rendszerek beszerzése | 12 |
A PHP telepítése Apache webkiszolgálót használó Linuxra | 13 |
A configure néhány paramétere | 15 |
Az Apache beállítása | 18 |
php.ini | 19 |
short_open_tag | 19 |
Hibajelentések beállításai | 20 |
Változókra vonatkozó beállítások | 20 |
A php.ini beállításainak helyi módosítása | 21 |
Segítség! | 21 |
Összefoglalás | 23 |
Kérdezz-felelek | 23 |
Ismétlés | 23 |
Ismétlő kérdések | 23 |
Válaszok | 24 |
Gyakorlatok | 24 |
Első PHP oldalunk | 25 |
Első programunk | 25 |
PHP blokkok kezdése és befejezése | 28 |
A print() függvény | 30 |
HTML és PHP kód egy oldalon | 31 |
Megjegyzések a PHP kódokban | 33 |
Összefoglalás | 34 |
Kérdezz-felelek | 34 |
Ismétlés | 35 |
Ismétlő kérdések | 35 |
Válaszok | 35 |
Gyakorlatok | 36 |
A PHP nyelv | |
Az alkotóelemek | 39 |
Változók | 40 |
Adattípusok | 41 |
Típusinformáció megjelentítése a var_dump() segítségével | 44 |
Egy bizonyos adattípus keresése | 44 |
Típus módosítása a settype() segítségével | 44 |
Típus módosítása típusátalakítással | 47 |
A típus átalakításának egyéb módszerei | 48 |
Miért vizsgáljuk a típust? | 49 |
Műveleti jelek és kifejezések | 49 |
Értékadás | 50 |
Aritmetikai műveletek | 50 |
Összefűzés | 51 |
Összetett értékadó műveletek | 51 |
Összehasonlítás | 52 |
Bonyolultabb összehasonlító kifejezések létrehozása logikai műveletek segítségével | 53 |
Egész típusú változók értékének automatikus növelése és csökkentése | 54 |
A műveletek sorrendje | 56 |
Állandók | 57 |
Beépített állandók | 58 |
Összefoglalás | 59 |
Kérdezz-felelek | 59 |
Ismétlés | 60 |
Ismétlő kérdések | 60 |
Válaszok | 60 |
Gyakorlatok | 61 |
Vezérlési szerkezetek | 63 |
Elágazások | 64 |
Az if utasítás | 64 |
Az if utasítás else ága | 65 |
Az if utasítás else if ága | 66 |
A switch utasítás | 68 |
A ? művelet | 70 |
Ciklusok | 71 |
A while ciklus | 71 |
A do...while ciklus | 72 |
A for ciklus | 73 |
Ciklus elhagyása a break utasítás segítségével | 74 |
Következő ismétlés azonnali elkezdése a continue utasítás segítségével | 76 |
Egymásba ágazott ciklusok | 77 |
Kódblokkok és böngészőbe írt kimenet | 78 |
Összefoglalás | 80 |
Kérdezz-felelek | 80 |
Ismétlés | 81 |
Ismétlő kérdések | 81 |
Válaszok | 81 |
Gyakorlatok | 82 |
Függények | 83 |
Mit nevezünk függvénynek? | 84 |
Függvények hívása | 84 |
Függvények létrehozása | 85 |
Érték visszaadása saját függvényekből | 88 |
Dinamikus függvényhívások | 89 |
A változók hatóköre | 90 |
Hozzáférés változókhoz a global kulcsszó segítségével | 91 |
Állapot megőrzése a függvényhívások között a static kulcsszó segítségével | 94 |
További részletek a paraméterekről | 97 |
Paraméterek alapértelmezett értékének megadása | 97 |
Változókra való hivatkozások átadása függényeknek | 99 |
Hivatkozások visszaadása függvényekből | 101 |
Névtelen függvények létrehozása | 102 |
Függvények létezésének ellenőrzése | 103 |
Összefoglalás | 105 |
Kérdezz-felelek | 105 |
Ismétlés | 105 |
Ismétlő kérdések | 105 |
Válaszok | 106 |
Gyakorlatok | 106 |
Tömbök | 107 |
Mit nevezünk tömbnek? | 108 |
Tömbök létrehozása | 109 |
Tömbök létrehozása az array() függvény segítségével | 109 |
Tömb létrehozása vagy elem hozzáadása a tömbhöz | 109 |
szögletes zárójel segítségével | 109 |
Tömb feltöltése az array_fill() függvénnyel | 110 |
Társításos tömbök | 110 |
Társításos tömbök létrehozása az array() függvény segítségével | 111 |
Társításos tömbök létrehozása és elérése közvetlen értékadással | 112 |
Többdimenziós tömbök | 112 |
Tömbök elérése | 113 |
Tömb méretének lekérdezése | 114 |
Tömb bejárása | 115 |
Társításos tömb bejárása | 116 |
Többdimenziós tömb bejárása | 117 |
Tömbök vizsgálata a print_r() függvénnyel | 119 |
Műveletek tömbökkel | 121 |
Két tömb egyesítése az array_merge() függvény segítségével | 121 |
Egyszerre több elem hozzáadása egy tömbhöz | 121 |
Az első elem eltávolítása az array_shift() függvény segítségével | 122 |
Tömb részének kinyerése az array_slice() függvény segítségével | 123 |
Tömbök rendezése | 124 |
Számmal indexelt tömb rendezése a sort() függvény segítségével | 124 |
Társításos tömb rendezése érték szerint az asort() függvény segítségével | 125 |
Társításos tömb rendezése kulcs szerint a ksort() függvény segítségével | 126 |
Függvények - ismétlés | 126 |
Összefoglalás | 128 |
Kérdezz-felelek | 129 |
Ismétlés | 129 |
Ismétlő kérdések | 129 |
Válaszok | 129 |
Gyakorlatok | 130 |
Karakterláncok kezelése | 131 |
Karakterláncok formázása | 132 |
A printf() függvény használata | 132 |
A mezőszélesség meghatározása | 136 |
Paraméterek felcserélése | 139 |
Formázott karakterlánc tárolása | 140 |
Részletesebben a karakterláncokról | 140 |
Szövegek indexelése | 141 |
Szöveg hosszának megállapítása az strlen() függvénnyel | 141 |
Szövegrész megkeresése az strstr() függvénnyel | 141 |
Részlánc elhelyezkedésének meghatározása az strpos() függvénnyel | 142 |
Szövegrészlet kinyerése a substr() függvénnyel | 143 |
Karakterlánc elemekre bontása az strtok() függvénnyel | 143 |
A karakterláncok kezelése | 145 |
Szöveg tisztogatása a trim() és az Itrim() függvényekkel | 145 |
Karakterlánc részének lecserélése a substr_replace() függvénnyel | 146 |
Az összes részlánc lecserélése az str_replace() függvénnyel | 147 |
Kis- és nagybetűk közti váltás | 147 |
Sortörések kialakítása a wordwrap() és az nl2br() függvényekkel | 148 |
Karakterláncok tömbbé alakítása az explode() függvénnyel | 150 |
Számok formázása szövegként | 150 |
Összefoglalás | 154 |
Kérdezz-felelek | 154 |
Ismétlés | 155 |
Ismétlő kérdések | 155 |
Válaszok | 155 |
Gyakorlatok | 156 |
Objektumok | 157 |
Mit nevezünk objektumnak? | 158 |
Objektum létrehozása | 158 |
Objektumtulajdonságok | 159 |
Az objektumok tagfüggvényei | 160 |
Objektumkonstruktorok | 162 |
Az objektumtulajdonságokhoz való hozzáférés korlátozása | 163 |
Az objektumok tagfüggvényeihez való hozzáférés korlátozása | 165 |
A tagfüggvények paramétereinek korlátozása típusjelzésekkel | 167 |
Öröklés | 168 |
A szülő tagfüggvényeinek felülírása | 170 |
Felülírt tagfüggvény meghívása | 171 |
A konstruktor | 172 |
Osztályok és objektumok ellenőrzése | 173 |
Egy objektum osztályának megállapítása | 174 |
Egy objektum családjának megállapítása | 174 |
Osztály vagy tagfüggvény létezésének ellenőrzése | 175 |
Beemelt fájlok automatikus betöltése az _autoload() függvénnyel | 175 |
Objektumok tárolása és kinyerése | 176 |
Összefoglalás | 178 |
Kérdezz-felelek | 178 |
Ismétlés | 179 |
Ismétlő kérdések | 179 |
Válaszok | 179 |
Gyakorlatok | 181 |
Munka a PHP-vel | |
Űrlapok | 185 |
Szuperglobális változók | 186 |
A S_SERVER tömb | 186 |
Adatok bekérése a felhasználótól | 188 |
Felhasználói adatok beemelése a globális hatókörbe | 190 |
Űrlap elemeinek elérése felhasználói tömbökkel | 191 |
PHP és HTML kód összekapcsolása egy oldalon | 193 |
Állapot mentése rejtett mezőkkel | 195 |
A felhasználó átirányítása | 197 |
Fájlfeltöltő űrlapok és programok | 200 |
Összefoglalás | 203 |
Kérdezz-felelek | 204 |
Ismétlés | 204 |
Ismétlő kérdések | 204 |
Válaszok | 204 |
Gyakorlatok | 205 |
Fájlok használata | 207 |
Fájlok beágyazása az include() utasítással | 208 |
Érték visszaadása beágyazott dokumentumból | 209 |
Az include () használata vezérlési szerkezeteken belül | 210 |
Include_once() | 212 |
Nagyobb programok kezelése az include_once() és az include_path segítségével | 212 |
Fájlok vizsgálata | 214 |
Fájl létezésének ellenőrzése a file_exists() függvénnyel | 214 |
Fájl vagy könyvtár? | 214 |
Fájl állapotának lekérdezése | 214 |
Fájl méretének lekérdezése a filesize() függvénnyel | 215 |
Fájl dátuminformációinak lekérdezése | 215 |
Több fájltulajdonságot egyszerre megadó függvény | 216 |
Fájlok létrehozása és törlése | 218 |
Fájl megnyitása írásra, olvasásra, hozzáfűzésre | 218 |
Olvasás fájlból | 219 |
Sorok olvasása fájlból az fgets() és feof() függvényekkel | 219 |
Tetszőleges mennyiségű adat olvasása fájlból | 221 |
Fájl karakterenkénti olvasása az fgetc() függvénnyel | 222 |
Fájl tartalmának beolvasása a file_get_contents() segítségével | 223 |
Fájlba írás és hozzáfűzés | 224 |
Fájlba írás az fwrite() és fputs() függvényekkel | 224 |
Adatok fájlba írása a file_put_contents() függvénnyel | 225 |
Fájlok zárolása az flock() függvénnyel | 225 |
Munka könyvtárakkal | 226 |
Könyvtár létrehozása az mkdir() függvénnyel | 226 |
Könyvtár törlése az rmdir() függvénnyel | 227 |
Könyvtár megnyitása olvasásra | 227 |
Könyvtár tartalmának olvasása | 227 |
Összefoglalás | 229 |
Kérdezz-felelek | 229 |
Ismétlés | 229 |
Ismétlő kérdések | 229 |
Válaszok | 230 |
Gyakorlatok | 230 |
A DBA függvények használata | 231 |
Mi van az elvont réteg mögött? | 232 |
Adatbázis megnyitása | 233 |
Adatok felvétele az adatbázisba | 234 |
Adatok módosítása az adatbázisban | 235 |
Adatok kiolvasása adatbázisból | 236 |
Elemek meglétének lekérdezése | 238 |
Elem törlése az adatbázisból | 238 |
Összetett adatszerkezetek tárolása adatbázisban | 238 |
Egy példa | 242 |
Összefoglalás | 248 |
Kérdezz-felelek | 248 |
Ismétlés | 249 |
Ismétlő kérdések | 249 |
Válaszok | 249 |
Gyakorlatok | 249 |
Együttműködés adatbázisokkal - SQL | 251 |
(Nagyon) rövid bevezetés az SQL nyelvbe | 252 |
Csatlakozás a MySQL kiszolgálóhoz | 253 |
Az adatbázis kiválasztása | 254 |
Hibakeresés | 255 |
Adatok hozzáadása táblához | 256 |
Automatikusan növekvő mező értékének lekérdezése | 260 |
Adatok lekérdezése | 260 |
Az eredménytábla sorainak száma | 261 |
Az eredménytábla elérése | 262 |
Adatok frissítése | 264 |
SQLite: a könnyűsúlyú SQL motor | 267 |
Tábla létrehozása SQLite adatbázisban | 267 |
Adatok felvétele és frissítése | 268 |
Adatok kiválasztása | 269 |
A PEAR::DB csomag használata | 270 |
A PEAR::DB csomag telepítése | 270 |
Munka a PEAR::DB csomaggal | 271 |
Összefoglalás | 275 |
Kérdezz-felelek | 276 |
Ismétlés | 276 |
Ismétlő kérdések | 276 |
Válaszok | 276 |
Gyakorlatok | 277 |
Kapcsolat a külvilággal | 279 |
Környezeti változók - részletesebben | 279 |
A HTTP ügyfél-kiszolgáló kapcsolat rövid ismertetése | 282 |
A kérelem | 283 |
A válasz | 284 |
Dokumentum letöltése távoli címről | 286 |
Átalakítás IP címek és gépnevek között | 288 |
Hálózati kapcsolat létesítése | 289 |
NNTP kapcsolat kétrehozása az fsockopen()-nel | 292 |
Levélküldés a mail() függvénnyel | 295 |
Bevezetés az adatfolyamok használatába | 296 |
Adatfolyamok és környezetek | 298 |
Kérdezz-felelek | 301 |
Ismétlés | 302 |
Ismétlő kérdések | 302 |
Válaszok | 302 |
Gyakorlatok | 302 |
Dinamikus képek kezelése | 303 |
A beállítások ellenőrzése a gd_info() segítségével | 304 |
Képek létrehozása és megjelenítése | 305 |
A szín beállítása | 306 |
Vonalak rajzolása | 308 |
Alakzatok kitöltése | 309 |
Körív rajzolása | 310 |
Téglalap rajzolása | 311 |
Sokszög rajzolása | 312 |
A színek átlátszóvá tétele | 313 |
Szövegek kezelése | 314 |
Írás képre az imagestring() függvénnyel | 314 |
A TrueType betűtípusok használata | 315 |
Szövegírás az imageTTFtext() függvénnyel | 315 |
Szöveg kiterjedésének ellenőrzése az imageTTFbbox() függvénnyel | 317 |
A fenti elemek összegyúrása | 321 |
Összefoglalás | 327 |
Kérdezz-felelek | 327 |
Ismétlés | 328 |
Ismétlő kérdések | 328 |
Válaszok | 328 |
Gyakorlatok | 328 |
Dátumok kezelése | 329 |
A dátum kiderítése a time() függvénnyel | 330 |
Az időbélyeg átalakítása a getdate() függvénnyel | 330 |
Az időbélyeg átalakítása a date() függvénnyel | 332 |
Időbélyeg készítése az mktime() függvénnyel | 335 |
A dátum ellenőrzése a checkdate() függvénnyel | 336 |
Egy példa | 336 |
A DatumBejaro osztály | 336 |
A GyorsNaptar osztály | 338 |
A DatumNezoSeged osztály | 341 |
Az ügyfélprogram kódja | 342 |
Lenyíló dátumlista készítése | 344 |
Összefoglalás | 350 |
Kérdezz-felelek | 350 |
Ismétlés | 350 |
Ismétlő kérdések | 350 |
Válaszok | 351 |
Gyakorlatok | 351 |
Objektumok haladóknak | 353 |
Objektumok és állandók | 354 |
Statikus tulajdonságok | 356 |
Statikus tagfüggvények | 356 |
Objektumtulajdonságok és -tagfüggvények hívásainak elfogása | 359 |
Végleges tagfüggvények | 363 |
Takarítás destruktorokkal | 363 |
Hibakezelés kivételekkel | 365 |
Egyéni kivételosztályok létrehozása | 366 |
Eszközök objektumhierarchiák felépítéséhez | 369 |
Elvont osztályok | 370 |
Felületek | 374 |
Objektumok átadása paraméterként és értékként | 376 |
Összefoglalás | 377 |
Kérdezz-felelek | 378 |
Ismétlés | 378 |
Ismétlő kérdések | 378 |
Válaszok | 379 |
Gyakorlatok | 379 |
A szabályos kifejezések használata | 381 |
Perl típusú szabályos kifejezések | 382 |
Minták keresése a preg_match() függvénnyel | 382 |
Teljes körű keresés a preg_match_all() függvénnyel | 390 |
Minták lecserélése a preg_replace() függvénnyel | 393 |
Mintamódosítók | 394 |
Minták cseréje a preg_replace_callback() függvénnyel | 397 |
Karakterláncok felbontása a preg_split() függvénnyel | 398 |
Összefoglalás | 399 |
Kérdezz-felelek | 399 |
Ismétlés | 399 |
Ismétlő kérdések | 399 |
Válaszok | 400 |
Gyakorlatok | 400 |
Állapotok tárolása sütikkel és lekérdező karakterláncokkal | 401 |
Sütik | 402 |
A sütik felépítése | 402 |
Sütik beállítása a PHP-vel | 403 |
Süti törlése | 405 |
Munkamenet-azonosító sütik létrehozása | 406 |
Példa: Webhelyhasználat nyomon követése | 406 |
Lekérdező karakterláncok használata | 414 |
Lekérdező karakterlánc készítése | 415 |
Összefoglalás | 417 |
Kérdezz-felelek | 417 |
Ismétlés | 417 |
Ismétlő kérdések | 417 |
Válaszok | 418 |
Gyakorlatok | 418 |
Állapotok tárolása munkamenetfüggvényekkel | 419 |
Mik azok a munkamenetfüggvények? | 420 |
Munkamenet indítása a session_start() függvénnyel | 420 |
Munkamenet-változók | 422 |
Munkamenet és a változók bejegyzésének törlése | 426 |
Munkamenet-változók kódolása és visszafejtése | 428 |
Összefoglalás | 429 |
Kérdezz-felelek | 429 |
Ismétlés | 430 |
Ismétlő kérdések | 430 |
Válaszok | 430 |
Gyakorlatok | 430 |
Munka kiszolgálói környezetben | 431 |
Folyamatok összekötése a popen() és proc_open() függvényekkel | 432 |
Parancsok végrehajtása az exec() függvénnyel | 438 |
Külső programok futtatása a system() függvénnyel vagy az ` műveleti jel segítségével | 439 |
Biztonsági rések megszünetése az escapeshellcmd() függvény használatával | 440 |
Külső programok futtatása a passthru() függvénnyel | 443 |
Külső CGI program meghívása a virtual() függvénnyel | 443 |
Összefoglalás | 445 |
Kérdezz-felelek | 445 |
Ismétlés | 446 |
Ismétlő kérdések | 446 |
Válaszok | 446 |
XML | 447 |
Mi az XML? | 448 |
XML elemzőfüggvények | 450 |
Az elemzőazonosítók megszerzése | 451 |
XML eseménykezelők beállítása | 451 |
Az xml_parser_set_option() függvény | 453 |
A dokumentumok elemzése | 453 |
A hibák jelentése | 454 |
Egy példa | 456 |
Bevezetés a DOM XML függvények használatába | 458 |
A DomDocument objektumok megszerzése | 458 |
A gyökérelem | 459 |
Új DomElement objektumok hozzáadása a fához | 460 |
Információk kiolvasása a DomElement objektumokból | 462 |
A szövegcsomópontok vizsgálata | 463 |
Két módszer a fák bejárására | 464 |
Az XSL röviden | 466 |
A PHP és az XSL | 466 |
Egy XSL dokumentum | 467 |
Az XSL alkalmazása XML dokumentumokra a PHP segítségével | 468 |
Bemutatkozik a SimpleXML | 469 |
Összefoglalás | 470 |
Kérdezz-felelek | 470 |
Ismétlés | 471 |
Ismétlő kérdések | 471 |
Válaszok | 471 |
Gyakorlatok | 472 |
A PHP bővítése | |
PEAR: újrahasznosítható elemek a PHP erejének növelésére | 475 |
Mi is a PEAR? | 476 |
A PEAR telepítése | 476 |
A PEAR és a csomagjai | 477 |
Egy csomag telepítése | 477 |
Néhány PEAR csomag működés közben | 477 |
Az Auth csomag | 478 |
A PhpDocumentor csomag | 486 |
A beállítófájlok szerkesztése a Config csomaggal | 493 |
A PEAR és a saját kódunk | 498 |
Kódolási minták | 498 |
Összefoglalás | 499 |
Kérdezz-felelek | 500 |
Ismétlés | 500 |
Ismétlő kérdések | 500 |
Válaszok | 500 |
Gyakorlatok | 500 |
Keretrendszer nagyobb programokhoz | 501 |
Alapelvek és problémák | 502 |
A Controller objektum | 503 |
A RequestHelper és DataStore osztályok | 506 |
A CommandFactory osztály | 510 |
A Command osztály | 513 |
A Dispatcher osztály | 514 |
A keretrendszer működése | 518 |
A TaskFacade objektum | 521 |
A Command osztály | 524 |
A nézetek | 526 |
Hogyan tovább - és érdemes volt-e? | 530 |
Összefoglalás | 531 |
Kérdezz-felelek | 531 |
Ismétlés | 531 |
Ismétlő kérdések | 531 |
Válaszok | 532 |
Gyakorlatok | 532 |
Szószedet | 533 |
Tárgymutató | 541 |