Oversigt
- Kursusplan
- HTML og CSS
- Interaktive services
- PHP
- PHP introduktion
- Funktioner i PHP
- Arrays i PHP
Kursusplan
Uge |
Emne |
Obligatorisk opgave |
15 |
Introduktion, HTML, CSS, PHP til og med arrays |
Design en blog (HTML, CSS) |
16 |
Forms, funktioner, OO, filer |
17 |
Persistens, DataObject, SQL |
Input via forms; dynamisk indhold; objekter |
18 |
Cookies, sessions |
Persistens |
19 |
Billeder og andre medieformer |
Login, brugere |
20 |
XML |
Håndtering af billeder |
21 |
Websitedesign på OO vis |
RSS feed |
- Eksamen
- En detaljeret (skriftlig) beskrivelse af det projekt, som I ønsker at udvikle i løbet fagpakkens tredje del. Bestået/ikke bestået
Oversigt
- Kursusplan
- HTML og CSS
- Interaktive services
- PHP
- PHP introduktion
- Funktioner i PHP
- Arrays i PHP
Hvad er World Wide Web?
- WWW er IKKE Internettet! WWW er en Internet service
- WWW består af tre basale teknologier
-
URL
: Uniform Resource Locator
-
HTTP
: HyperText Transfer Protocol
-
HTML
: HyperText Markup Language
- Client/server kommunikation baseret på fælles netværksstandarder og standardiserede dataformater
- Se http://www.w3.org/
WWW er klient/server
- En webbrowser beder om et dokument hos en webserver
- Webserveren svarer ved at sende det ønskede dokument tilbage
- Initiativet ligger altid hos klienten (dvs. webbrowseren)
URL – Uniform Resource Locator
- Problem: Hvorledes navngiver man effektivt alt på Internettet?
- Protokol: Den service, der tilbydes (f.eks. ftp)
- Maskinnavn: En unik maskine på Internettet
- Lokal identifikation: En streng, der identificerer en resource på den pågældende maskine. F.eks. en
sti og filnavn (som ovenfor)
HTML – HyperText Markup Language
- Et SGML inspireret “tagged text” format. Dvs. formatterings- og struktureringskommandoer til webbrowseren
består af
<tag1>
tekst</tag1>
- Et HTML dokument består overordnet af to hoveddele:
<head>...</head>
-
- Her defineres metadata omkring dokumentet, såsom titel, tegnsæt, stylesheets, etc.
- Tekst i <head> vises ikke på skærmen (undtagen titlen)
<body>...<body>
-
- Her finder man brødteksten – det som læseren ser som selve websiden
- HTML har en lang række tags, der tjener til at dele teksten op i afsnit, lister, links, osv.
HTML eksempel
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simpel side</title>
</head>
<body>
<h1>Overskrift</h1>
<p>Et kortere tekstafsnit</p>
<ul>
<li>Element 1</li>
<li>Element 2</li>
</ul>
</body>
</html>
HTML standarder
- HTML har som et dokumentsprog undergået en betydelig udvikling:
- HTML 1.0 – 4.01
- XHTML 1.0 – 1.1
- HTML har igennem sin udvikling ikke kun blevet defineret af fælles standard organisationer (som W3C), men i høj grad
blevet udviklet af forskellige browserfabrikanter
- Det har haft som konsekvens, at HTML er blevet udstyret med en del uhensigtmæssigheder, som man siden har forsøgt at
slippe af med ved en oprydning/modularisering i form af XHTML
- Uheldigvis er store mængder af den HTML, som man kan træffe i virkeligheden, meget langt fra at overholde gældende
standarder
- Dette gør det vanskeligt at parse HTML, for webbrowsere såvel som for søgemaskiner
Placering af filer på WWW serveren
- Filer der ønskes publiceret skal placeres i et forudbestemt offentligt tilgængeligt directory på brugerens
Unix konto typisk kaldet '
public_html
'
- Eksempler:
/web/bouvin/public_html/
/web/bouvin/public_html/intProg/
index.html
i et directory kan adresseres med directory navnet alene
- Eksempler på ækvivalente URL'er
http://www.daimi.au.dk/~bouvin/
http://www.daimi.au.dk/~bouvin/index.html
- Filer kan kopieres til serveren med FTP/SFTP eller via editorens upload eller publish
funktion
- Når I uploader fra f.eks. Dreamweaver, brug da SFTP og
fresh-horse.daimi.au.dk
som host
- Tillader opdeling af Web sider for lettere vedligeholdelse
- Dele, der går igen på forskellige sider, ligger kun ét sted
- Tidsstempling, betingelser, adgang til scripts
- Serveren fortolker Web siden, når siden hentes
- Kræver konfiguration i en
.htaccess
fil (placeres i rodfolderen):
AddHandler server-parsed .shtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Hypermedier 2002</title>
<!--#include virtual="elements/meta.html" -->
</head>
<body>
<h1>Hypermedier 2002</h1>
<!--#include virtual="elements/menu.html" -->
<h2>Overskrift</h2>
<p>Tekst, tekst, tekst, ...</p>
<!--#include virtual="elements/footer.html" -->
</body>
</html>
elements/footer.html
</td>
</tr>
<tr>
<td colspan="2" align="right">
<!--#config timefmt="%d-%b-%Y %T %Z" -->
<p class="footer">Sidst ændret:
<!--#echo var="LAST_MODIFIED" --></p>
</td>
</tr>
</tbody>
</table>
Stylesheets
- HTML er primært (eller i hvert fald ideelt) et format til at strukturere et dokument
- HTML har ikke særligt stærke evner udi typografi – her kommer stylesheets til
- Stylesheets er en beskrivelse af, hvorledes data præsenteres afhængig af præsentationsmedie
- adressering af et canvas/printport til at tegne på
- placering, fonte, farver, mv. på skærmen
- oversættelse til tale etc.
- Præsentationen bestemmes af anvendelsen og præsentationsmediet
- i en Web browser transformeres HTML typisk til en skærm
- Fordele: det samme data kan præsenteres på mange forskellige måder uden at skulle ændre datafilen
- meget nemmere at redesigne et Web site
- Stylesheets kan laves med en style editor eller v.hj.a. en teksteditor
- CSS = Cascading Stylesheets til HTML og XML
Kobling af stylesheet og data
- De relevante stylesheets til en given fil identificeres
- Der identificeres hvilken medietype man kører på
- Der bygges et dokument træ for data filen
- Style deklarationerne appliceres – de enkelte properties sættes – på hver knude i træet
- Der laves en formatteringsstruktur
- Formatteringsstrukturen overgives til rendering på det valgte medium
CSS: Cascading Style Sheets
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="http://www.w3.org/StyleSheets/Core/Modernist" type="text/css"/>
<title>Simpel side</title>
</head>
<body>
<h1>Test side for CSS</h1>
<p>Tekst og tekst og tekst og tekst</p>
</body>
</html>
Cascade
- Style sheets kan komme tre steder fra: forfatter, brugeren, og applikationen (e.g. browseren).
- Forfatteren specificerer typisk et stylesheet I headeren på dokumentet
- Brugeren kan have en foretrukken stylesheet som kan lægges ned over dokumentet
- Applikationen har typisk en default style sheet som kan anvendes, hvis ikke dokumentet kommer med et
stylesheet selv.
- Style sheets fra disse kilder overlapper typisk I deres virkefelt – dvs. de udtaler sig om de samme dokument
elementer.
- CSS cascaden vægter hver style regel og den med den højeste vægt vinder
- Forfatter regler vinder over bruger regler som vinder over applikations regler – vægtningen kan ændres med
"!important" kommando
- Importerede/linkede stylesheets vægtes efter import ordningen
Media types
CSS er overordentligt fleksibelt
- Stylesheets kan understøtte en lang række medier:
- Suitable for all devices.
- Intended for speech synthesizers.
- Intended for braille tactile feedback devices.
- Intended for paged braille printers.
- Intended for handheld devices (small screen, monochrome, limited bandwidth).
- Intended for paged, opaque material and for documents viewed on screen in print preview mode.
- Intended for projected presentations, for example projectors or print to transparencies.
- Intended primarily for color computer screens.
- Intended for media using a fixed-pitch character grid, such as teletypes, terminals, etc.
- Intended for television-type devices (low resolution, color, limited scrollability).
Eksempler på CSS sheets
http://www.w3.org/StyleSheets/Core/Modernist
Eksempler på CSS sheets
http://www.w3.org/StyleSheets/Core/Ultramarine
CSS – Internt Specificeret
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style type="text/css">
body { color: red }
h1 { color: blue }
</style>
<title>Simpel side</title>
</head>
<body>
<h1>Test side for CSS</h1>
<p>Tekst og <span style="color: yellow;">tekst</span> og tekst og tekst</p>
</body>
</html>
CSS eksempler på syntaks
h1, h2, h3, h4, h5 {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
margin-left: 0;
color: #0000AA;
}
h1 {
font-weight: bold;
font-size: 28pt;
line-height: 36pt;
}
h2 {
font-style: italic;
font-size: 18pt;
}
body {
background-color: #EBEBF3;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 10pt;
color: #000088;
}
p {
margin-left: 5%;
margin-right: 5%;
text-align: justify;
}
ul {
margin-left: 5%;
margin-right: 5%;
}
.vigtigt {
color: yellow;
}
A:link {color: #006600}
A:visited {color: #990000}
A:active {color: #FF0000}
Oversigt
- Kursusplan
- HTML og CSS
- Interaktive services
- PHP
- PHP introduktion
- Funktioner i PHP
- Arrays i PHP
Statiske websider
- Dette scenarie viser det statiske tilfælde, hvor vi blot ønsker at få en HTML side tilbage
Interaktive services på WWW
- Rå HTML sider er statiske
- Det kan være fint for basal information, der ikke ændrer sig, men er uegnet til
- sites med mange opdateringer
- internetforretninger
- osv.
- Men! HTTP er en simpel protokol og HTML er blot tekst, og tekst er let at skabe v.hj.a. et program
- Hvis man derfor bruger programmer til dynamisk at skabe siderne, får man muligheder for
- sammensætte sidens indhold dynamisk
- foretage beregninger og opslag i databaser, og vise resultatet heraf på siden
- behandle input fra brugeren
Input fra brugeren: Common Gateway Interface – CGI
- Støtter dynamisk generering af HTML sider
- CGI-scripts udføres på server siden – typisk en Unix maskine eller en Windows maskine
- Der kan sendes parametre til CGI-scripts.
- CGI – I/O
-
Post
– læser parametre fra STDIN
- Længden af input læses fra en "environment variabel" kaldet
CONTENT_LENGTH
Get
– læser fra en "environment variabel" kaldet QUERY_STRING
- Ny HTML side skrives på
STDOUT
.
- Se http://hoohoo.ncsa.uiuc.edu/cgi/
CGI scripts
- Skrives i et vilkårligt sprog, der kan håndtere environment variable og standard I/O strømme
- C/C++, Java, BETA, Perl, Python,TCL, Unix shell scripts, Visual Basic, AppleScript, etc, etc
- Eksempel på kald
- http://www.daimi.au.dk/~bouvin/inakProg2005/billedviser.php?vis=test.png&txt=Test
Udviklingen af CGI programmer
- Oprindeligt blev CGI programmer skrevet i sprog som C og andre generelle programmeringssprog (og det gør de
stadig)
- Det kunne godt være lidt besværligt, f.eks. i gammeldags Perl:
#!/usr/local/bin/perl
if ($ENV{'REQUEST_METHOD'} eq "POST") {
$form = <STDIN>
} else {
$form = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/,$form);
($dummy,$query) = split(/=/,shift(@pairs));
$query =~ s/\+/ /g;
$query =~ s/\s//g;
if ($query eq "") {
$query = "http://www.daimi.aau.dk/~bouvin/DHMWWW/v1.2/help.html";
}
print "Content-Type: text/html\n\n";
print "<HTML>\n<head>\n<title>DHM/WWW v1.2</title>\n</head>\n<frameset border=0 rows=\"0,*\">\n<frame src=\"http://www.daimi.aau.dk/cgi-bouvin/hiddenpage.pl?URL=$query\" name=\"hidden_frame\" scrolling=\"no\">\n<frame src=\"javascript:''\" name=\"shown_frame\">\n</frameset>\n</HTML>";
Oversigt
- Kursusplan
- HTML og CSS
- Interaktive services
- PHP
- PHP introduktion
- Funktioner i PHP
- Arrays i PHP
Dynamiske websider
- Såfremt der skal være dynamisk indhold på en side (f.eks. hentet fra en database), kræves der processering på
webserveren
- Dette kan f.eks. varetages af PHP
- Dvs. at man skal have en (korrekt konfigureret) webserver med, når man udvikler dynamiske websider
- for det er på webserveren, at arbejdet foregår
Server-Side Scripting – PHP
- Et programmeringssprog, der kan blandes med HTML
- Programmet fortolkes direkte af Webserveren inden siden leveres til browseren
- F.eks. beregninger og opslag i databaser
- Oprindeligt udviklet af danskeren Rasmus Lerdorf
- Hovedreference http://www.php.net/
- pas på, manualen er >1500 sider...
- bedst til online opslag, når man leder efter en funktion
- der er mange andre resourcer på nettet, samt bunker af bøger
- Et af de mest udbredte sprog til server-side scripting
- benyttes f.eks. af Yahoo!...
PHP – karakteristika
- Scripting sprog
- dvs. koden skal ikke kompileres af udvikleren, før programmet kan køres – dette skridt håndteres
automatisk af systemet
- typisk hurtigt at komme i gang med
- kan også bruges til at skrive konventionelle programmer i
- Objektorienteret
- PHP5 er et objektorienteret sprog
- dog ikke i så høj grad som Java (OO er et valg i PHP)
- i dette kursus vil vi, så vidt muligt, vælge at være objektorienterede ;)
- Omfattende udvidelser og biblioteker
- PHP er let (for en C programmør) at udvide
- understøtter stort set alt indenfor f.eks. databaser
PHP – karakteristika
- PHP kode er indlejret i HTML-sider
- PHP bruges som oftest til at generere tekst (eller HTML)
- Typisk kan man designe sin webside, indtil den ser rigtig ud, og herefter tilføje PHP til at håndtere det dynamiske indhold
- Krydsplatform
- findes til stort set alle platforme
- PHP hér på stedet
- PHP anvendes til mange vore lokale services
PHP i forhold til sprog, som I (måske) kender
- PHP er anderledes i forhold til Java ved ikke at have været objektorienteret fra begyndelsen
- PHP minder i det aspekt om ActionScript, der heller ikke nødvendigvis er OO
- PHP er ligesom ActionScript et “afslappet” sprog, hvor man ikke behøver at angive ting særligt nøjagtigt
– dette er i modsætning til Java
- Den største forskel er, at PHP afvikles på serveren – man kan ikke køre det lokalt
(med mindre man installerer sin egen PHP webserver)
- Skønt man ikke skal kompilere PHP som man skal med Java, så kræves det altså, at PHP siden er placeret på webserveren,
før man kan afprøve den
PHP i anvendelse
- PHP filer slutter typisk på
.php
- Disse kan formuleres fuldstændigt som almindelige HTML filer, hvor PHP koden indkapsles i et
<?php ?>
tag
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simpel side</title>
</head>
<body>
<p>To og to giver <?php print 2+2; ?></p>
</body>
</html>
Variabler i PHP
- Variabelnavne i PHP indledes med
$
- Der findes fire basale typer:
- Strenge (
string
)
$hilsen = "Hej!";
- Heltal (
integer
)
$antal = 17;
- Decimaltal (
float
)
$ratio = 3.47;
- Boolske værdier (
bool
)
$saved = false;
foruden array
og object
, som jeg vender tilbage til senere
Eksempler på variabler og assignment
<?php
$name = "Paul";
print "Your name is $name\n";
$name2 = $name;
$age = 20;
print "Your name is $name2, and your age is $age\n";
print 'Goodbye, $name!\n';
?>
Basale sprogkonstruktioner
- De grundlæggende sprogkonstruktioner for
- if-sætninger
- løkker
- opdeling i blokke
- basale operationer som aritmetik og sammenligninger
minder meget om dem, man finder i de fleste programmeringssprog, såsom
- C, C++, C#, Perl, Java, Javascript, ActionScript
(de er nemlig alle inspirerede af C)
if-sætninger og kodeblokke
<?php
$age = 20;
if ($age < 18) {
print "You're young - enjoy it!\n";
} else {
print "You're not under 18\n";
}
if ($age >= 18 && $age < 50) {
print "You're in the prime of your life\n";
} else {
print "You're not in the prime of your life\n";
}
if ($age >= 50) {
print "You can retire soon - hurrah!\n";
} else {
print "You cannot retire soon :( ";
}
?>
For løkker i PHP
<?php
for ($i = 1; $i < 10; $i = $i + 1) {
print "Number $i\n";
}
?>
PHP og typer
- PHP er et løst typet sprog
- Dvs. at hvis PHP kan opnå et fornuftigt resultat ved at opfatte en variabel af én type som noget andet, så gør PHP det
- Dette er en afgørende forskel til f.eks. Java, der er stærkt typet
<?php
$tal = 10; $tekst = "12";
$sum = $tal + $tekst;
print $sum; // udskriver 22
?>
Blanding af PHP og HTML
- PHP benyttes som regel i forbindelse med HTML sider, så sproget er velegnet til at blive indlejret
- Når Webserveren behandler siden, udføres PHP koden, hvor den findes, og resultatet (tekst) indsættes dér, hvor den pågældende
PHP kode var
- PHP koden påbegyndes altid med
<?php
og afsluttes altid med ?>
- Hele siden betragtes imidlertid som ét af PHP, så de enkelte blokke af PHP kode hænger sammen
- Dette viser sig at være overordentligt praktisk
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>PHP i HTML</title>
</head>
<body>
<?php $tekst = "Tjuhej, hvor det går!"; ?>
<p>Simpelt eksempel: <?php print $tekst; ?></p>
<?php print "<p>Simpelt eksempel: $tekst</p>\n"; ?>
<?php print<<<EOT
<p>Simpelt eksempel: $tekst</p>
EOT;
?>
</body>
</html>
Blanding af PHP og HTML
<?php
if ($foo == $bar) {
print "<p>Lots of stuff here</p>";
print "<p>Lots of stuff here</p>";
print "<p>Lots of stuff here</p>";
print "<p>Lots of stuff here</p>";
print "<p>Lots of stuff here</p>";
}
?>
er ækvivalent, men ikke så nemt at læse som
<?php
if ($foo == $bar) {
?>
<p>Lots of stuff here</p>
<p>Lots of stuff here</p>
<p>Lots of stuff here</p>
<p>Lots of stuff here</p>
<p>Lots of stuff here</p>
<?php
}
?>
Oversigt
- Kursusplan
- HTML og CSS
- Interaktive services
- PHP
- PHP introduktion
- Funktioner i PHP
- Arrays i PHP
Funktioner i PHP
- PHP begyndte ikke som et objektorienteret sprog, og det kan man godt se på de ting, som sproget tilbyder – specielt de mange
funktioner
- Et sprog som Java har et enormt klassebibliotek – et vældigt hierarki af klasser, der muliggør en mængde ting
- Klasser og objekter er en forholdsvis ny ting i PHP (introduceret i PHP4 og først ordentligt implementeret i PHP5), så hér
findes der ikke noget stort klassebibliotek
- Til gengæld findes der en voldsom mængde forskellige funktioner, som kan bruges til alskens formål
- det er på grund af funktionerne, at PHP manualen er så lang
- Disse funktioner afspejler, hvor udvidbar PHP er, og viser, hvad folk igennem tiden har haft behov for i forbindelse med PHP
udvikling
- Odds er, at hvis man har behov for at gøre en ting, så er der sikkert en funktion, der kan gøre det meste af arbejdet
- Funktioner finder man v.hj.a. PHP manualens søgefunktion samt ved at kigge i
Practical PHPs indeks
Funktioner i PHP
- I Java og andre objektorienterede er man vant til, at det meste er objekter, og at handlinger (metoder), der knytter sig til et objekt, kaldes via objektet
- I PHP kan man gøre det samme (som jeg kommer ind på næste gang), men 99% af alle funktioner står alene, og kaldes derfor
ikke via et objekt
<?php
$tekst = "Min tekst";
print strlen($tekst); // udskriver '9'
print substr($tekst, 1); // udskriver 'in tekst'
print substr($tekst, 0, 3); // udskriver 'Min'
print substr($tekst, 4); // udskriver 'tekst'
print substr($tekst, -5); // udskriver 'tekst'
?>
Egne funktioner
- Man kan (naturligvis) lave sine egne funktioner i PHP:
<?php
function foo() {
return 1;
}
print foo();// udskriver "1"
?>
<?php
function hello($target) {
print "Hello $target!\n";
}
hello("World"); // udskriver "Hello World!"
?>
Standard værdier for argumenter
- PHP funktioner kan have forud definerede standard værdier:
<?php
function hello($target = "World") {
print "Hello $target!\n";
}
hello(); // udskriver "Hello World!"
hello("Class"); // udskriver "Hello Class!"
?>
Oversigt
- Kursusplan
- HTML og CSS
- Interaktive services
- PHP
- PHP introduktion
- Funktioner i PHP
- Arrays i PHP
Arrays i PHP
- Arrays er den basale datastruktur i PHP
- Arrays er meget alsidige og udfylder den rolle, som man i Java bruger almindelige
arrays
, Vector
,
List
og Hashmap
til
- PHP arrays er associative arrays – de knytter en nøgle til en værdi
<?php
$myarray = array("Første", "Anden", "Tredje");
$size = count($myarray);
print_r($myarray);
?>
giver som output
Array
(
[0] => Første
[1] => Anden
[2] => Tredje
)
Arrays som hashmaps
- Hvis man ikke angiver en nøgle, bruger PHP 0, 1, ... som nøgle – således er disse tre arrays ækvivalente:
<?php
$myfirstarray = array("Første", "Anden", "Tredje");
$mysecondarray = array ( 0 => "Første",
1 => "Anden",
2 => "Tredje" );
$mythirdarray[] = "Første";
$mythirdarray[] = "Anden";
$mythirdarray[] = "Tredje";
?>
Arrays som hashmaps
- Nøgler er oftest heltal eller strenge
<?php
$myarray = array ( "foo" => "Første",
"bar" => "Anden",
"baz" => "Tredje" );
$myotherarray["foo"] = "Første";
$myotherarray["bar"] = "Anden";
$myotherarray["baz"] = "Tredje";
print_r ($myarray);
print $myarray["foo"] . "\n";
?>
Array
(
[foo] => Første
[bar] => Anden
[baz] => Tredje
)
Første
Iteration
- Et array er naturligvis ikke meget værd, hvis man ikke kan gennemløbe det:
<?php
$myarray = array("foo" => "Første", "bar" => "Anden", "baz" => "Tredje");
foreach($myarray as $val) {
print "$val\n";
}
foreach($myarray as $key => $val) {
print "$key = $val\n";
}
?>
Første
Anden
Tredje
foo = Første
bar = Anden
baz = Tredje
Multidimensionelle arrays
- Indholdet i et array kan sagtens være andre arrays:
<?php
$capitalcities['England'] =
array("Capital"=>"London", "Population"=>40000000, "NationalSport"=>"Cricket");
$capitalcities['Wales'] =
array("Capital"=>"Cardiff", "Population"=>5000000, "NationalSport"=>"Rugby");
$capitalcities['Scotland'] =
array("Capital"=>"Edinburgh", "Population"=>8000000, "NationalSport"=>"Football");
print $capitalcities["Wales"]["NationalSport"] . "\n"; // udskriver Rugby
?>
Prædefinerede arrays i PHP
- PHP skaber i almindelig brug en række arrays, som indeholder vigtig information
$_GET
: Indeholder de værdier som sættes via en HTML form, der bruger get
metoden
$_POST
: Indeholder de værdier som sættes via en HTML form, der bruger post
metoden
$_FILES
: Indeholder information omkring uploadede filer
$_SERVER
: Indeholder de af Webserveren satte data
- Se flere i Practical PHP
Simpelt PHP eksempel
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simpel form</title>
</head>
<body>
<form action="action.php" method="post">
Your name: <input type="text" name="name"/><br/>
Your age: <input type="text" name="age"/><br/>
<input type="submit"/><br/>
</form>
</body>
</html>
Simpelt PHP eksempel
action.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Greetings</title>
</head>
<body>
<h2>Greetings</h2>
<p>Hi
<?php print $_POST['name']; ?>. you are <?php print $_POST['age']; ?> years old.</p>
</body>
</html>
Simpelt PHP eksempel
resultat (minus lidt typografi (og fem år))
Opsummering
- PHP indeholder megen rig funktionalitet, og er velegnet til at udvikle Web applikationer med
- Det er også et stort sprog, der kan virke uoverskueligt, når man betragter dokumentationen
- Det har ikke OO rødder, hvilket afspejles i f.eks. de mange funktioner
- Det er dog fuldt muligt at skrive objektorienteret i PHP, og det vil jeg anbefale jer
- Man kan ikke lære det hele på én gang
- Den eneste effektive måde at lære et programmeringssprog på er ved at afprøve eksempler, skrive småprogrammer og
eksperimentere
- på den måde erhverver man sig sproget lidt efter lidt
- God fornøjelse!