PHP Trainer Kit
460 530 625
Mikä PHP on?.............................................................20 Kuinka PHP laajeni? .....................................................20 Mitä uutta PHP4:ssä on...................................................21 Zend-moottori ...........................................................21 Miksi valita PHP?........................................................21 Kehittämisen nopeus .....................................................22 PHP on Open Source -tuote................................................22 Suorituskyky ............................................................22 Siirrettävyys ...........................................................22 Yhteenveto ..............................................................22 K&V .....................................................................23 Työpaja .................................................................23 Kysymyksiä...............................................................23 Toiminta ................................................................23 Alustat, palvelimet, tietokannat ja PHP..................................26 Mistä löydät PHP4:n ja lisätietoa .......................................26 PHP4:n asentaminen Linuxille ja Apachelle................................26 Joitakin configure-asetuksia ............................................27 --enable-track-vars .....................................................28 --with-gd................................................................28 --with-mysql ............................................................28 Apachen kokoonpano ......................................................29 php.ini .................................................................29 short_open_tag ..........................................................30 Virheilmoitussäännöt ....................................................30 Muuttujakohtaiset asetukset .............................................31 Help! ...................................................................31 Yhteenveto ..............................................................32 K&V .....................................................................32 Työpaja .................................................................32 Kysymyksiä...............................................................33 Toiminta ................................................................33 Ensimmäinen skriptimme ..................................................36 PHP-ohjelmalohkojen alku ja loppu........................................37 print()-funktio..........................................................38 HTML:n ja PHP:n yhdistäminen ............................................39 Kommenttien lisääminen PHP-koodiin.......................................40 Yhteenveto ..............................................................41 K&V .....................................................................41 Työpaja .................................................................42 Kysymyksiä...............................................................42 Toiminta ................................................................42 Muuttujat................................................................46 Dynaamiset muuttujat ....................................................47 Viittaukset muuttujiin...................................................49 Tietotyypit .............................................................50 Tyypin muuttaminen funktiolla settype()..................................52 Tyypin muuntaminen pakkomuuntamalla .....................................53 Operaattorit ja lausekkeet...............................................55 Sijoitusoperaattori .....................................................55 Aritmeettiset operaattorit...............................................56 Liittämisoperaattori ....................................................56 Lisää sijoitusoperaattoreita.............................................56 Vertailuoperaattorit ....................................................57 Monimutkaisempien testien luominen loogisten operaattoreiden avulla......58 Inkrementointi ja dekrementointi ........................................59 Operaattoreiden prioriteetit ............................................60 Vakiot ..................................................................61 Esimääritetyt vakiot.....................................................62 Yhteenveto ..............................................................62 K&V .....................................................................63 Työpaja .................................................................63 Kysymyksiä...............................................................63 Toiminta ................................................................65 If-lause.................................................................68 Else-osan käyttö if-lauseessa............................................69 Elseif-osan käyttäminen if-lauseessa.....................................70 Switch-rakenne...........................................................72 Ehto-operaattorin käyttö.................................................73 Silmukat.................................................................74 While-lause .............................................................74 Do-while-lause ..........................................................75 For-lause................................................................76 Silmukoista poistuminen break-lauseella .................................78 Koodin ohittaminen continue-lauseella ...................................80 Sisäkkäiset silmukat ....................................................81 Yhteenveto ..............................................................82 K&V .....................................................................82 Työpaja .................................................................82 Kysymyksiä...............................................................82 Toiminta ................................................................83 Mikä funktio on? ........................................................86 Funktion kutsuminen......................................................86 Funktion määrittely......................................................88 Dynaamiset funktiokutsut.................................................91 Muuttujien näkyvyysalue..................................................92 Muuttujien määrittely global-määreellä ..................................93 Tilan tallentaminen funktiokutsujen välillä static-määreen avulla .......95 Lisää argumenteista......................................................97 Argumenttien oletusarvot ................................................98 Muuttujaviittausten vienti funktioille .................................100 Yhteenveto .............................................................102 K&V ....................................................................102 Työpaja ................................................................103 Kysymyksiä..............................................................103 Toiminta ...............................................................104 Mikä on taulukko?.......................................................106 Taulukoiden luonti .....................................................106 Taulukoiden määrittely array()-funktiolla ..............................106 Assosiatiiviset taulukot................................................108 Assosiatiivisen taulukon määrittely array()-funktiolla .................108 Assosiatiivisen taulukon suora määrittely tai kasvattaminen ............109 Moniulotteiset taulukot ................................................109 Taulukoiden käsittely ..................................................110 Taulukon koon selvittäminen ............................................110 Taulukon läpikäynti silmukalla .........................................111 Assosiatiivisen taulukon läpikäynti.....................................112 Moniulotteisen taulukon tulostaminen ...................................113 Taulukoiden manipulointi ...............................................115 Kahden taulukon liittäminen array_merge()-funktiolla....................115 Useiden arvojen sijoittaminen taulukkoon array_push()-funktiola ........116 Taulukon ensimmäisen alkion poistaminen array_shift()-funktiola.........117 Taulukoiden pilkkominen array_slice()-funktiolla........................117 Taulukoiden lajittelu ..................................................118 Numeerisesti indeksoitujen taulukoiden lajittelu sort()-funktolla ......118 Assosiatiivisen taulukon lajittelu asort()-funktiolla ..................119 Assosiatiivisen taulukon lajittelu avaimen mukaan ksort()-funtiolla ....120 Yhteenveto .............................................................120 K&V ....................................................................121 Työpaja ................................................................121 Kysymyksiä..............................................................121 Toiminta ...............................................................122 Mikä olio on? ..........................................................124 Olion luominen..........................................................124 Olioiden ominaisuudet ..................................................125 Olioiden metodit........................................................126 Esimerkki...............................................................130 Luokan ominaisuuksien määrittely........................................130 Muodostimen luominen....................................................130 Metodi addRow() ........................................................130 Metodi addRowAssocArray() ..............................................131 Metodi output() ........................................................132 Kaikki yhdessä .........................................................132 Mitä puuttuu? ..........................................................135 Miksi luokka?...........................................................135 Periyttäminen...........................................................135 Kantaluokan metodin korvaaminen.........................................137 Korvatun metodin kutsuminen ............................................138 Periyttäminen: Esimerkki................................................140 HTMLTable-luokan ominaisuudet...........................................140 Muodostimen luominen....................................................140 Metodi setCellpadding() ................................................141 Output()-metodi.........................................................141 Table- ja HTMLTable-luokat kokonaan ....................................142 Miksi käyttää periyttämistä? ...........................................145 Yhteenveto .............................................................146 K&V ....................................................................146 Työpaja ................................................................146 Kysymyksiä..............................................................147 Toiminta ...............................................................147 Globaalit muuttujat ja ympäristömuuttujat ..............................152 Skripti, joka sieppaa käyttäjän syöttötiedon ...........................153 Monivalintaelementtien käsittely .......................................154 Kaikkien lomakekenttien käsittely assosiatiivisen taulukon katta .......157 GET- ja POST-lähetysten erotteleminen ..................................159 HTML- ja PHP-koodin yhdistäminen yksittäisellä sivulla .................160 Piilokenttien käyttö tilan tallentamiseen...............................162 Käyttäjän uudelleen ohjaaminen .........................................164 Tiedoston lataamiseen tarvittava lomake ja skripti .....................167 Yhteenveto .............................................................170 K&V ....................................................................170 Työpaja ................................................................171 Kysymyksiä..............................................................171 Toiminta ...............................................................171 Tiedoston sisällyttäminen include()-funktiolla .........................174 Tiedostojen testaaminen.................................................177 Tiedoston olemassaolon testaaminen file_exists()-funktiolla.............177 Tiedosto vai hakemisto?.................................................178 Tiedoston tilan tarkistaminen ..........................................178 Tiedoston koon määrittäminen filesize()-funktiolla .....................179 Tiedostoa koskevan päivämäärätiedon selvittäminen ......................179 Funktio, joka suorittaa useita tiedostotestejä..........................180 Tiedostojen luominen ja tuhoaminen .....................................181 Tiedoston avaaminen kirjoittamista, lukemista tai lisäämistä arten .....182 Tiedostojen lukeminen ..................................................183 Rivien lukeminen fgets()- ja feof()-funktioilla ........................183 Vaihtelevan tietomäärän lukeminen tiedostosta fread()-funktiola ........184 Merkkien lukeminen tiedostosta fgetc()-funktiolla ......................186 Tiedostoon kirjoittaminen ja lisääminen ................................187 Tiedostoon kirjoittaminen fwrite()- tai fputs()-funktiolla..............187 Tiedostojen lukitseminen flock()-funktiolla ............................188 Hakemistojen käsittely .................................................189 Hakemistojen luominen mkdir()-funktiolla................................189 Hakemiston poistaminen rmdir()-funktiolla ..............................189 Hakemiston avaaminen lukemista varten opendir()-funktiolla .............189 Hakemiston sisällön lukeminen readdir()-funktiolla .....................190 Yhteenveto .............................................................191 K&V ....................................................................191 Työpaja ................................................................192 Kysymyksiä..............................................................192 Toiminta ...............................................................192 DBM-tietokannan avaaminen ..............................................194 Tiedon lisääminen tietokantaan..........................................194 Elementtien muuttaminen.................................................195 Tiedon lukeminen DBM-tietokannasta .....................................196 Kohteen olemassaolo tietokannassa ......................................198 Kohteen tuhoaminen tietokannasta........................................198 Monimutkaisten tietorakenteiden lisääminen DBM-tietokantaan ............199 Esimerkki...............................................................202 Yhteenveto .............................................................208 K&V ....................................................................208 Työpaja ................................................................208 Kysymyksiä..............................................................209 Toiminta ...............................................................209 Lyhyt SQL-johdanto .....................................................212 Tietokantapalvelimeen kytkeytyminen ....................................213 Tietokannan valitseminen ...............................................214 Virheistä selviytyminen ................................................214 Tiedon lisääminen taulukkoon ...........................................215 Automaattisesti inkrementoidun kentän arvon saaminen ...................219 Tiedon ottaminen esille ................................................219 Kyselyn antaman rivimäärän selvittäminen ...............................219 Tulosjoukon käsittely ..................................................220 Tiedon muuttaminen......................................................223 Tietokantaa koskevan tiedon selvittäminen ..............................224 Tietokantojen luetteleminen ............................................225 Tietokannan taulukoiden luetteleminen ..................................226 Kenttien listaaminen ja tutkiminen......................................226 Tietokannan rakenne: kaikki yhdessä ....................................227 Yhteenveto .............................................................230 K&V ....................................................................230 Työpaja ................................................................231 Kysymyksiä..............................................................231 Toiminta ...............................................................231 Ympäristömuuttujat......................................................234 Lyhyt yhteenveto asiakas/palvelin-keskustelusta ........................236 Pyyntö .................................................................236 Vastaus ................................................................237 Asiakirjan saaminen etäosoitteesta......................................239 IP-osoitteiden ja isäntänimien muuntaminen .............................240 Verkkoyhteyden toteuttaminen ...........................................241 NNTP-yhteyden luominen fsockopen()-funktiolla...........................244 Sähköpostin lähettäminen mail()-funktiolla..............................246 Yhteenveto .............................................................247 K&V ....................................................................247 Työpaja ................................................................248 Kysymyksiä..............................................................248 Toiminta ...............................................................248 Kuvien luominen ja tulostaminen.........................................250 Värin toteuttaminen ....................................................251 Viivojen piirtäminen....................................................251 Värillä täyttäminen ....................................................252 Kaaren piirtäminen......................................................253 Suorakaiteen piirtäminen................................................254 Monikulmion piirtäminen.................................................255 Värin tekeminen läpinäkyväksi ..........................................256 Tekstin käsittely.......................................................257 Merkkijonon kirjoittaminen imageTTFtext()-funktiolla ...................257 Tekstikoon testaaminen imageTTFbox()-funktiolla.........................258 Kaikki yhdessä .........................................................261 Yhteenveto .............................................................266 K&V ....................................................................266 Työpaja ................................................................267 Kysymyksiä..............................................................267 Toiminta ...............................................................267 Päivämäärän sieppaaminen time()-funktiolla .............................270 Aikaleiman muuntaminen getdate()-funktiolla ............................270 Aikaleiman muuntaminen date()-funktiolla ...............................271 Aikaleiman luominen mktime()-funktiolla.................................273 Päivämäärän testaaminen checkdate()-funktiolla .........................274 Esimerkki...............................................................274 Käyttäjän syöttämän tiedon tarkistaminen ...............................274 HTML-lomakkeen luominen.................................................275 Kalenteritaulukon luominen .............................................277 Yhteenveto .............................................................281 K&V ....................................................................281 Työpaja ................................................................281 Kysymyksiä..............................................................281 Toiminta ...............................................................281 Tietotyyppien kertaaminen...............................................284 Palautamme mieliin tietotyypit .........................................284 Monimutkaisten tyyppien muuntaminen.....................................285 Tietotyyppien automaattinen muuntaminen ................................286 Tietotyyppien testaaminen ..............................................288 Muita keinoja tyypin muuttamiseen ......................................288 Miksi tietotyypit ovat tärkeitä?........................................289 Läsnäolon tai tyhjyyden testaaminen.....................................291 Lisää taulukoista.......................................................292 Vaihtoehtoinen tapa taulukon läpikäynnissä .............................292 Arvon olemassaolon tarkistaminen .......................................293 Alkion poistaminen taulukosta ..........................................294 Funktion käyttäminen taulukon jokaisen alkio kohdalla ..................294 Mukautettu taulukoiden lajittelu .......................................295 Yhteenveto .............................................................298 K&V ....................................................................299 Työpaja ................................................................299 Kysymyksiä..............................................................299 Toiminta ...............................................................299 Merkkijonojen muotoilu .................................................302 Muotoileva tulostus printf()-funktiolla.................................302 Tyypin määrittäjä printf()-funktiossa ..................................302 Tulostustilan määrittäminen tilan määrittäjällä ........................304 Kentän leveyden määrittäminen...........................................306 Tarkkuuden määrittely ..................................................307 Muunnosmäärittäjät: yhteenveto .........................................307 Muotoillun merkkijonon tallentaminen....................................309 Merkkijonojen tutkiminen ...............................................309 Huomautus merkkijonojen indeksoinnista .................................309 Merkkijonon pituuden selvittäminen strlen()-funktiolla .................310 Osamerkkijonon etsiminen strstr()-funktiolla ...........................310 Osamerkkijonon paikan löytäminen strpos()-funktiolla ...................311 Merkkijonon osan sieppaaminen substr()-funktiolla ......................311 Merkkijonon jäsentely strtok()-funktiolla ..............................312 Merkkijonojen muokkaaminen .............................................313 Merkkijonon puhdistaminen trim()- ja ltrim()-funktioilla ...............313 Merkkijonon osan muuttaminen substr_replace()-funktiolla ...............314 Osamerkkijonon korvaaminen str_replace()-funktiolla.....................314 Isot ja pienet kirjaimet................................................315 Merkkijonon pilkkominen taulukoiksi explode()-funktiolla ...............316 Yhteenveto .............................................................316 K&V ....................................................................316 Työpaja ................................................................317 Kysymyksiä..............................................................317 Toiminta ...............................................................317 POSIXin mukaiset säännölliset lausekkeet ...............................320 Kuvioiden vastineiden hakeminen ereg()-funktiolla ......................320 Merkkijonojen korvaaminen egrep_replace()-funktiolla....................325 Merkkijonojen pilkkominen split()-funktiolla............................326 Perl-yhteensopivat säännölliset lausekkeet .............................327 Kuvioiden hakeminen preg_match()-funktiolla ............................327 Vasteiden etsiminen globaalisti preg_match_all()-funktiolla.............329 Kuvioiden korvaaminen preg_replace()-funktiolla ........................332 Yhteenveto .............................................................335 K&V ....................................................................335 Työpaja ................................................................335 Kysymyksiä..............................................................335 Toiminta ...............................................................336 Evästeet ...............................................................338 Evästeen anatomia.......................................................338 Evästeen asettaminen PHP:llä ...........................................339 Evästeen tuhoaminen.....................................................341 Istuntoevästeiden luominen..............................................341 Esimerkki–sivuston käytön seuranta ......................................341 Kyselymerkkijonojen käyttö .............................................348 Kyselymerkkijonon luominen .............................................348 Yhteenveto .............................................................351 K&V ....................................................................351 Työpaja ................................................................351 Kysymyksiä..............................................................351 Toiminta ...............................................................352 Mitä istuntofunktiot ovat?..............................................354 Istunnon aloittaminen session_start()-funktiolla .......................354 Istuntomuuttujien käyttö................................................355 Istunnon ID:n siirtäminen kyselymerkkijonossa...........................361 Istuntomuuttujien koodaaminen...........................................362 Istuntomuuttujan rekisteröinnin tarkistaminen...........................363 Yhteenveto .............................................................363 K&V ....................................................................363 Työpaja ................................................................364 Kysymyksiä..............................................................364 Toiminta ...............................................................364 Putkien avaaminen prosesseihin popen()-funktiolla.......................366 Komentojen ajaminen exec()-funktiolla ..................................369 Ulkoisten komentojen ajaminen system()-funktiolla tai heittomrkkioperaattorilla.............................................370 Turvallisuusaukkojen tukkiminen escapeshellcmd()-funktiolla ............371 Ulkoisten sovellusten ajaminen passthru()-funktiolla ...................373 Ulkoisen CGI-skriptin kutsuminen virtual()-funktion kautta .............374 Yhteenveto .............................................................375 K&V ....................................................................375 Työpaja ................................................................376 Kysymyksiä..............................................................376 Toiminta ...............................................................376 Tiedon saaminen PHP:stä ja skripteistäsi................................378 phpinfo()...............................................................378 PHP:n virheilmoitukset..................................................382 Virheilmoitusten kirjoittaminen lokitiedostoon..........................385 Virheilmoituksen sieppaaminen ..........................................386 Manuaalinen vianhaku....................................................387 Yleiset virheet.........................................................389 Yhteenveto .............................................................391 K&V ....................................................................391 Työpaja ................................................................391 Kysymyksiä..............................................................391 Toiminta ...............................................................391 Lyhyesti ...............................................................396 Rakenne.................................................................396 Tietokannan suunnittelu.................................................397 Suunnitteluvaihtoehdot .................................................399 Jäsenten ympäristö .....................................................399 join.php ja dblib.inc...................................................399 membersmenu.php ........................................................412 login.php...............................................................413 updateevent.php.........................................................415 reviewevents.php........................................................423 Yhteenveto .............................................................427 K&V ....................................................................427 Työpaja ................................................................427 Kysymyksiä..............................................................427 Toiminta ...............................................................428 Tapahtumapäiväkirjan julkiset näkymät...................................430 viewevents.php..........................................................430 viewclubs.php...........................................................437 viewclub.php ...........................................................440 viewevent.php ..........................................................443 Tulevaisuus ............................................................446 Yhteenveto .............................................................446 K&V ....................................................................446 Työpaja ................................................................447 Kysymyksiä..............................................................447 Toiminta ...............................................................447 TUNTI 1 ................................................................450 Kysymyksiä..............................................................450 TUNTI 2 ................................................................451 Kysymyksiä..............................................................451 TUNTI 3 ................................................................452 Kysymyksiä..............................................................452 TUNTI 4 ................................................................453 Kysymyksiä..............................................................453 TUNTI 5 ................................................................455 Kysymyksiä..............................................................455 TUNTI 6 ................................................................457 Kysymyksiä..............................................................457 TUNTI 7 ................................................................459 Kysymyksiä..............................................................459 TUNTI 8 ................................................................461 Kysymyksiä..............................................................461 TUNTI 9 ................................................................465 Kysymyksiä..............................................................465 TUNTI 10 ...............................................................467 Kysymyksiä..............................................................467 TUNTI 11 ...............................................................469 Kysymyksiä..............................................................469 TUNTI 12 ...............................................................470 Kysymyksiä..............................................................470 TUNTI 13 ...............................................................472 Kysymyksiä..............................................................472 TUNTI 14 ...............................................................474 Kysymyksiä..............................................................474 TUNTI 15 ...............................................................476 Kysymyksiä..............................................................476 TUNTI 16 ...............................................................477 Kysymyksiä..............................................................477 TUNTI 17 ...............................................................479 Kysymyksiä..............................................................479 TUNTI 18 ...............................................................481 Kysymyksiä..............................................................481 TUNTI 19 ...............................................................483 Kysymyksiä..............................................................483 TUNTI 20 ...............................................................484 Kysymyksiä..............................................................484 TUNTI 21 ...............................................................485 Kysymyksiä..............................................................485 TUNTI 22 ...............................................................487 Kysymyksiä..............................................................487 TUNTI 23 ...............................................................488 Kysymyksiä..............................................................488 TUNTI 24 ...............................................................489 Kysymyksiä..............................................................489
<< Edellinen (2) WWW-ohjelmointi Trainer Kit | Sivu 3/3 | Takaisin ensimmäiseen >> (1) e-kirjojen sisällysluettelot |