Til hovedinnhold
GuidePHP- & MySQL-innføring: Kapittel 1

Introduksjon til PHP

Vi gir deg en innføring i elementær bruk av PHP.

Hardware.no

Om innføringen

Er du en av mange som har lekt litt med HTML, men savner mer funksjonalitet? I denne artikkelserien vil vi lære deg å bruke PHP og MySQL til å lage dynamiske webløsninger, slik at du kan ta webutviklingen til et nytt nivå.

For å få best mulig utbytte av denne innføringen er det en fordel at du kan HTML og har en viss kjennskap til programmering. Dette er imidlertid ikke et krav - du skal kunne skjønne det meste uten noen som helst bakgrunnskunnskap.

I dette første kapittelet vil vi se på hva PHP egentlig er og hvorfor man skal bruke det. Videre vil du lære å sette opp PHP på din egen maskin, og du vil også lære elementær koding.

Planen er at denne artikkelserien skal gå over rundt ti kapitler. Først vil du lære deg PHP, og etterhvert vil vi gå over til å vise hvordan PHP kan brukes sammen med databaseverktøy som MySQL. Så vil vi bruke denne kunnskapen i praksis.

Så, la oss starte!

Denne guiden er oppdatert og republisert. Originalartikkelen er fra juni 2006.

PHPs historie

Historien til PHP

Før vi begynner å bruke PHP i praksis kan det være lurt å vite hva det er vi egentlig driver med. La oss ta en titt på hvordan PHP startet og hvordan det har utviklet seg med tiden.

Historien til PHP går så langt tilbake som til 1994. Dansk-kanadieren Rasmus Lerdorf, programvareutvikler og medlem av utviklingsteamet til Apache, ønsket å holde oversikt over besøkende til hans personlige nettside.

Til dette utviklet han en skriptsamling basert på Perl og CGI. Mange fikk øynene opp for Lerdorfs arbeid, og etter stor etterspørsel lanserte han Personal Home Page Tools (a.k.a. the PHP Construction Kit) 8. juni 1995.

Kort tid senere ble versjon 2 lansert, da under navnet PHP/FI. Denne inkluderte Form Interpreter, et verktøy som gjorde det mulig å sende spørringer til en SQL-database. Det var nå moroa virkelig startet.

I midten av 1997 brukte rundt 50 000 nettsteder PHP. Nå som prosjektet ble så stort var det umulig for én mann å håndtere det alene. Nå står en liten gruppe utviklere for utviklingen av PHP, med hjelp fra bidragsytere over hele verden.

To nøkkelpersoner i utviklingen er de to israelske programmererne Zeev Suraski og Andi Gutmans. I 1997 skrev de om hele parseren til PHP, og i oktober 1997 ble PHP/FI 2 lansert. Samtidig ble navnet byttet til Hypertext Preprocessor, som er navnet den dag i dag. I juni 1998 ble PHP 3 lansert offentlig.

Eksplosiv økning

Fra og med fjerde kvartal av 1998 opplevde PHP en eksplosiv økning, da prosjekter basert på åpen kildekode for alvor kom frem i lyset. Rundt 100 000 nettsteder brukte PHP på en eller annen måte i oktober 1998. Året senere var tallet på én million.

I mai 2000 ble versjon 4 lansert, da med den nye Zend Engine. I dag er PHP installert på ca. 20 millioner nettsider verden over. PHP 5 ble lansert 13. juli 2004, og er ved siden av PHP 4.4 de versjonene som har offisiell støtte i dag.

PHP 5 forsøker å tilby noe mange brukere har etterspurt opp gjennom årene - mulighet for objektorientert programmering (OOP). Selv om OOP-støtten per dags dato er langt fra optimal, bringer den PHP mer på linje med objektorienterte programmeringsspråk som Java og C++. Du vil lære mer om objektorientert programmering i PHP i et senere kapittel.

Hva er PHP?

Hva er egentlig PHP?

For dere som ikke har kjennskap til PHP fra før av kan hele opplegget virke litt merkelig. La meg forklare hva PHP egentlig går ut på, og hvorfor vi bruker det.

PHP er et skriptespråk på serversiden som kan brukes til å generere blant annet HTML. Andre liknende skriptespråk er blant annet Microsofts Active Server Pages (ASP), Macromedias ColdFusion og Suns Java Server Pages (JSP).

PHP er blant de få språkene som er skrevet med åpen kildekode. Dette vil si at hele kildekoden er tilgjengelig gjennom PHP.net. Enkelte kaller PHP for "ASP med åpen kildekode" fordi funksjonaliteten er liknende ASP. Formuleringen er imidlertid misledende, ettersom PHP ble utviklet før ASP (første versjon av ASP kom i 1996).

Den største fordelen med PHP i forhold til andre liknende teknologier er det at det er så og si helt plattformuavhengig. Du kan kjøre PHP på systemer basert på Unix, Windows og Mac OS X.

Alt foregår på serveren

PHP er ikke ment til å definere utseendet til en nettside og bestemmer i utgangspunktet heller ikke innholdet. Til slike oppgaver har man klientbaserte teknologier som Cascading Style Sheet (CSS) og Hyper-Text Markup Language (HTML).

Hva PHP gjør er i de fleste tilfeller helt usynlig for brukeren. En bruker vil ikke nødvendigvis kunne skille et HTML-dokument som er servert av PHP fra et vanlig HTML-dokument. Dette fordi resultatet av PHP normalt er HTML.

Her ser vi en HTML-side som blir levert til nettleseren til en bruker.

Her ser vi det eksakt samme dokumentet som er levert av et PHP-skript. Som vi ser merker ikke brukeren noen som helst forskjell, for forskjellen ligger på serversiden.

Klientbasert skripting

Så hva trenger man PHP til?

De av dere som har laget nettsider i HTML har sannsynligvis lagt merke til en vesentlig negativ ting. La oss si at du har en stor nettside basert på en rekke HTML-dokumenter. På denne nettsiden har du en meny. Men så finner du ut at du vil endre noe på menyen. Hva i all verden skal du gjøre nå?

Den eneste muligheten er å endre hver enkelt HTML-fil. Det er her PHP kommer inn i bildet - med PHP kan du ha en enkelt fil som inneholder kodingen til menyen, og deretter bruke en svært enkel funksjon for å legge menyen inn på hver enkelt side. HTML er altså et statisk språk, mens PHP på sin side er dynamisk.

Riktignok finnes det teknologier som gjør en liknende løsning mulig via HTML, slik som frames. Dette er imidlertid ikke en god metode, da det er ansett som en utdatert teknologi.

I tillegg til at PHP gjør det svært enkelt å lage statiske websider byr språket på en rekke funksjoner du aldri kunne ha klart å gjøre mulig med bare HTML (du vil oppdage dette etterhvert som du leser flere kapitler av denne innføringen). Har du for eksempel tenkt på hvordan forumet vårt og publiseringssystemet er laget?

Jepp, du gjettet riktig. Det er alt basert på PHP. Hadde det ikke vært for PHP og liknende teknologier ville verdensveven fortsatt vært i steinalderstadiet.

Klientbaserte teknologier

Det finnes i dag en rekke klientbaserte teknologier som muliggjør diverse funksjoner. Jeg kan nevne Javascript, Java applets, Flash og VBscript. Problemet med samtlige av disse teknologiene er imidlertid at de avhenger helt og holdent på brukeren, ikke på serveren som leverer informasjonen.

For eksempel kan brukere ha deaktivert JavaScript av sikkerhetshensyn, eller nettleseren kan ha ikke-eksisterende eller utilstrekkelig støtte for Java eller Flash. Disse problemene unngår man med serverbaserte-teknologier som PHP, for all behandling av kode skjer på serveren.

Installasjon - Unix

Installasjon av PHP

Den vanligste bruken er å leie serverplass med støtte for PHP. For vanlig testing kan det imidlertid være like greit å sette det opp på egen maskin. La oss se hvordan det gjøres. Vi har tatt utgangspunkt i bruk av Apache 2.2 som webserver, PHP 5.3 og MySQL 5.5.

Installasjon på Unix

Erfarne PHP-utviklere vil ofte si at Unix-baserte systemer er det beste å bruke for PHP. Det er også derfor svært mange leverandører av serverplass benytter dette operativsystemet. For å sette opp PHP trenger du å ha installert en webserver. Vi tar utgangspunktet i Apache 2.2, som er nyeste versjon av den mest utbredte varianten.

Faktisk leveres mange Linux-distrubisjoner med LAMP (Linux Apache MySQL PHP), og i mange tilfeller trenger man derfor ikke å installere noe som helst. Det er imidlertid en stor sjanse for at både Apache- og PHP-versjonen du har installert er utdatert.

Brukere av Debian eller Ubuntu kan installere Apache og PHP svært enkelt (takk til Tor Henning Ueland for denne). Alt som trengs å gjøres er å skrive:

sudo apt-get install apache2 php5

Etter denne er kjørt vil Apache være igang med PHP installert og du kan gå på http://localhost/ for å se en testside som befinner seg i /var/www/index.html

Installasjon - Windows

Installasjon av PHP på Windows XP/7

Mange ønsker sikkert å benytte seg av Windows når de skal teste PHP-koding. Installasjonen er langt lettere på Windows, ettersom den tar utgangspunkt i allerede kompilert kode.

Det finnes i dag en rekke pakker som gjør det mulig å installere Apache, PHP og MySQL svært enkelt. Av disse er nok XAMPP den beste, da den i skrivende stund støtter nyeste versjon av Apache (2.2.21), PHP (5.3.8) og MySQL (5.5.16).

Svar "ja" til alle spørsmål du får under installasjonen. Et stort problem med XAMPP er at programmet må konfigureres skikkelig for å unngå store sikkerhetshull. Etter installasjonen åpner du

<a href="http://localhost/xampp">localhost/xampp

, og følg deretter instruksjonene for konfigurasjon.

For å sjekke at installasjonen av XAMPP var vellykket, gjør følgende:

Åpne et nytt dokument i teksteditoren din, og skriv:

<?php
phpinfo();
?>

Denne filen lagrer du som info.php, og legger den i xampp/htdocs. Deretter starter du en nettleser og åpner

localhost/info.php

eller

127.0.0.1/info.php

. Har du gjort alt riktig skal du nå få opp masse info om PHP-konfigurasjonen din.

Installer selv

Hvis du imidlertid ønsker å gjøre ting selv, for å ha full kontroll over hva du gjør og hvor du legger ting, så følg innføringen under.

Last ned og installer Apache Win32 Binary fra Apache.org. Selve installasjonen skal være nokså selvforklarende.

Deretter laster du ned PHP 5.1.4 fra PHP.net. Her burde du velge zip-pakken, ettersom varianten som bruker et installeringsprogram kun virker med Internet Information Services (IIS), som følger med Windows Server 2003.

Nå pakker du ut zip-filen til stedet du ønsker; C:/PHP er det vanligste. Velg samtlige filer som har filendelsen .DLL, og kopier de til C:/Windows/System32. Egentlig trenger du ikke alle filene, men for enkelhetens skyld er det like greit å ta alle sammen.

Kopier

php.ini-recommended

til C:\Windows, og endre navnet på den til php.ini. Deretter åpner du denne filen i en teksteditor, for eksempel Notisblokk (Start > Kjør > notepad). Naviger deg frem til

doc_root

(Ctrl + B for å søke i Notisblokk). Denne skal bli satt til mappen du har dokumentene til Apache i, for eksempel

C:/Programfiler/Apache Software Foundation/Apache2.2/htdocs

.

Nå går du tilbake til Apache-mappen, og finner mappen kalt

conf

. Her åpner du

httpd.conf

med en teksteditor, og sett

DocumentRoot

(skal finnes to steder) til mappen du skrev inn ovenfor (for eksempel

C:/Programfiler/Apache Software Foundation/Apache2.2/htdocs

).

Finn

ServerAdmin

(fortsatt i

httpd.conf

), og sett denne til e-postadressen din. Så finner du

ServerName

, og setter denne til

127.0.0.1

. Deretter føyer du til følgende nederst i dokumentet:

AddModule mod_php5.c
LoadModule php5_module modules/php5apache2.dll
AddType application/x-httpd-php .php .html

Åpne et nytt dokument i teksteditoren din, og skriv:

&lt?php
phpinfo();
?>

Denne filen lagrer du som info.php, og legger den i mappen for dokumenter, som ved de forrige stegene. Deretter starter du en nettleser og åpner

http://localhost/info.php

eller

127.0.0.1/info.php

. Har du gjort alt riktig skal du nå få opp masse info om PHP-konfigurasjonen din.

Det er imidlertid ikke få ganger ting ikke fungerer som det skal første gang. Fremgangsmåten varierer fra versjon til versjon og fra operativsystem til operativsystem. Fungerer det ikke slik du hadde håpet kan du ta en titt i PHPs eller Apaches dokumentasjon på nettet.

Eventuelt kan du benytte metoden med XAMPP (se toppen).

Installasjon - OS X

Installasjon på Mac OS X

Så har tiden kommet for Mac OS X. Det er ikke mange år siden prosjekter med åpen kildekode, slik som PHP, begynte å støtte Macintosh-plattformen. Mange ser på OS X som det beste av to verdener - enkelheten til Windows men samtidig gode muligheter for tekstbaserte kommandoer.

Operativsystemet ditt kom sannsynligvis med både Apache og PHP installert på forhånd. Det er imidlertid mulig at dette er eldre versjoner, og det er derfor lurt å laste ned nyeste versjon. Problemet er bare at å laste ned kildekoden og kompilere den selv er langt fra lett for uerfarne brukere. Du kan imidlertid få en del tips her.

Det finnes imidlertid en rekke uoffisielle sider som tilbyr nyeste versjon av PHP ferdig kompilert for OS X. Vi kan anbefale en oppdatert versjon av Entropy. Installasjonen der skal være lett, det er bare å følge instruksjonene.

Hvis du har PHP 5 og Apache 2 gjennom operativsystemet ditt, så følg disse stegene for installasjon:

Åpne Apaches konfigureringsfil med administratorrettigheter.

sudo open -a TextEdit /etc/httpd/httpd.conf

Rediger filen, og fjern kommentartegnet (;) fra følgende linjer:

Load Module php5_module
AddModule mod_php5.c
AddType application/x-httpd-php .php

Restart serveren.

sudo apachectl graceful

Nå kan vi sjekke om alt fungerer som det skal. Åpne en teksteditor og skriv følgende:

&lt?php
phpinfo();
?>

Denne filen lagrer du som info.php, og legger den i mappen til siden din. Deretter starter du en nettleser og åpner

http://localhost/~brukernavn/info.php

eller

127.0.0.1/~brukernavn/info.php

. Har du gjort alt riktig skal du nå få opp masse info om PHP-konfigurasjonen din.

Hello World!

Nå som vi har fått PHP til å fungere er det endelig tid for litt koding. Hva er vel da bedre enn den oppbrukte "hello world" som vi alle er så grundig lei av?

Det første du må gjøre er selvsagt å åpne en teksteditor. For Windows kan Notisblokk fungere flott, men et skikkelig program som Zend Studio er langt bedre og mer oversiktlig. Minuset er at det koster penger.

Et annet alternativ er PHPEclipse. Bortsett fra en kronglete installasjon er dette et godt program.

Når vi nå har en teksteditor åpen skriver du følgende:

&lt?php
echo("Hello, evil world!");
?>

PHP starter alltid med

&lt?php

, og avsluttes med

?>

. All tekst innenfor vil oppfattes som PHP-kode, og vil bli behandlet deretter.

Echo()

-funksjonen skriver teksten som står innenfor

("

og

")

, og avsluttes (som alle andre funksjoner i PHP) med et semikolon.

Lagre filen som hello.php i mappen for filene på serveren. Hvor denne mappen er lokalisert avhenger av hvilket operativsystem du har og hva du selv har valgt (se side 5-7). Når du nå åpner

localhost/hello.php

skal du se teksten "Hello, evil world!". Gratulerer, du har laget ditt første PHP-skript!

Fra HTML til PHP og tilbake

En spennende ting med PHP er den tette integrasjonen med HTML. Dette gjør det lett å gå frem og tilbake fra PHP-kode i et dokument. Se det følgende eksempelet:

<html>
<head>
<title>&lt?php echo("Dette er en tittel som er laget ved hjelp av
PHP");?>&lt/title>
</head>
<body>
<p>
Dette avsnittet har egentlig ingen funksjon, det er her bare for å <br/ >vise at du når som helst &lt?php echo("kan gå over til PHP-kode
uten noen som helst problemer (ser du? Kult, eh?)"); ?>
&lt/p>
</body>
&lt/html>

Hvis du lagrer denne filen som et PHP-dokument og åpner den i en nettleser vil du se at tittel og tekst fungerer helt flott. Hvis du viser kildekoden til dokumentet vil du også se at det ikke er noen spor av PHP-kode der, alt du ser er HTML-kode.

Dette er fordi all PHP-kode blir kjørt på serveren, mens HTML blir tolket hos klienten (leseren). Se side 3 for mer informasjon.

Inkludering av filer

Husker du jeg på side 4 snakket om problemet med at HTML er statisk? Det er på tide å vise hvorfor PHP er løsningen på alle slike sorger.

La oss fortsatt bruke eksempelet med at vi skal redigere et element på menyen. Vi ser for oss at menyen blir definert slik i HTML:

<ul id="meny">
<li><a href="index.php">Hovedsiden</a></li>
<li><a href="bilder.php">Bilder</a></li>
<li><a href="forum.php">Forum</a></li>
</ul>

Med PHP kan vi bruke funksjonen

include()

. Denne inkluderer en valgt fil på det valgte området, og utfører eventuelle kommandoer filen inneholder.

<?php
include('meny/hovedmeny.php');
?>

Denne kan du lagre som for eksempel

index.php

. Teksten som står innenfor

('

og

')

definerer hvilken fil som skal inkluderes. Som alle funksjoner i PHP markerer et semikolon at funksjonen er ferdig.

Vi ser for oss at vi har følgende i

meny/hovedmeny.php

:

<ul id="meny">
<li><a href="index.php">Hovedsiden</a></li>
<li><a href="bilder.php">Bilder</a></li>
<li><a href="forum.php">Forum</a></li>
</ul>

Nå vil innholdet i

hovedmeny.php

bli vist hver gang en forespørsel om å vise menyen blir sendt. Skal vi nå gjøre en endring på menyen er det bare å endre

hovedmeny.php

. Smart, sant?

Flere inkluderingsfunksjoner

Det finnes totalt fire funksjoner som inkluderer filer. Det er bygd opp av to sett med funksjoner -

include

-funksjonene og

require

-funksjonene. I tidligere versjoner av PHP var forskjellen i funksjonaliteten og hastigheten store mellom disse to settene, men dette stemmer ikke i dag. Den eneste forskjellen er i dag hva slags feilmelding de returnerer hvis noe går galt.

Include()

og

include_once()

vil normalt generere en feilmelding ved en feil, mens

require()

og

require_once()

vil generere en feilmelding av typen "fatal error" og stoppe hele skriptet.

Som man ser av navnene til funksjonene,

include_once()

og

require_once()

er forskjellig fra

include()

og

require()

ved at de bare lar en fil bli inkludert én eneste gang i løpet av hele PHP-skriptet som kjøres. Dette kan være svært nyttig i mange tilfeller, blant annet hvis du inkluderer filer som inneholder PHP-funskjoner. Dette fordi å redeklarere funksjoner vil resultere i en fatal feilmelding og hele skriptet vil bli avbrutt.

I tillegg er det ikke uvanlig å ha (i større systemer) filer som inkluderer filer som inkluderer filer som igjen inkluderer filer, og det kan i mange tilfeller være vanskelig å huske om du har inkludert en funksjon tidligere. Dermed er

*_once()

-funksjonene svært nyttige.

Så hvilken av de skal jeg bruke?

Ved små skript er det letteste å bruke

include()

, og det er også funksjonen jeg vil benytte når jeg skriver eksempler i denne innføringen. Generelt sett kommer det mye an på hvordan du koder - hvis du vil holde deg selv i øret og ikke la det fungere hvis du har skrevet noe feil bruker du

require()

. I den andre enden av skalen finner vi

include_once()

, som vil gjemme alle konsekvenser av dine dårlige kodevaner.

Sammendrag

Så er første kapittel av denne innføringen snart over. Jeg håper at du har hatt utbytte av det du har lest, og at du har likt det du har lest like mye som jeg har likt å skrive det. Husk at jeg som alltid er åpen for tilbakemeldinger.

Sammendrag

PHP er et skriptespråk som kjøres på serversiden, og sender informasjonen i form av HTML-dokumenter til klienten (leseren). PHP har siden lanseringen i 1995 opplevd en eksplosiv vekst. Allerede i 2007 var det installert på mer enn 20 millioner nettsteder.

PHP gjør det lett å lage dynamiske webløsninger, og brukes aktivt på svært mange store nettportaler verden over. Vårt eget forum og publiseringssystem baserer seg på PHP.

PHP-kode markeres med &lt?php og ?>, og alt innenfor vil bli tolket som PHP-kode. Alle funksjoner skal i PHP avsluttes med et semikolon. Videre printes tekst og HTML-koder ut med funksjonen

echo()

, og filer blir inkludert med

include()

- og

require()

-funksjonene.

I neste kapittel vil vi gå løs på syntaksen til PHP, lære om variabler og mer om hvordan ut-data sendes fra PHP. Planen er at kapittel to vil komme om rundt én uke.

annonse
Tek.no er en del av Schibsted Media. Schibsted Media AS og Schibsted ASA er ansvarlig for dine data på denne siden.Les mer her