Søger du en specifik kategori?

 



Oprettet man. d. 12. oktober 2009 kl. 22:47

mbm2007
mbm2007 (7.862 point)
www.magnusbm.dk
Guidens karaktér
1
2
3
4
5

Lære sproget PHP

Dette er en helt nybegynder guide om PHP og variabler. Den kommer ikke indover sproget HTML, og hvor php koden skal placeres der. Men den kommer godt indover hvordan man skriver sproget, og hvordan man bruger det. En efterfølger er tiltænkt.
Lær PHP

Hey folks, i dag vil jeg lære jer begyndelsen på PHP. Jeg vil prøve at gøre det så forståeligt som muligt men stadig komme bredt omkring emnet.
Jeg har prøvet at lære mange mennesker jeg kender hvordan filer på computeren "hænger" sammen. Og ja, der er faktisk nogle som ikke ved, at alle "ting" på din computer består af filer. F.eks. skal du vide at selv når du åbner et program, er det en fil du åbner. Og de mærkelige filtypenavne som .exe, definerer bare hvorledes filerne skal behandles.
Således skal PHP koder også skrives i en fil. Alle de fremtidige PHP koder du skriver kan du med god samvittighed skrive i Notesblok eller TextWriter. Husk at du ikke kan åbne filerne direkte på din computer da de ikke er blevet behandlet endnu. Jeg kommer ind på dette igen senere i teksten.
PHP står for PHP: Hypertext Preprocessor, og er et serverside baseret sprog, dvs. at koden bliver afviklet på serveren og ikke klienten.

Klient? En klient er såre simpelt som det er, dig og alle andre som kigger på en hjemmeside. Hvis du f.eks. går ind på youtube.com så er du klienten i forhold til serveren som leverer dig HTML filerne.

Server? En server er der filerne til en hjemmeside er lagt. Det er her du skal placere dine PHP filer. Det er en fysisk computer, som har forbindelse til internettet og har åbnet nogle porte. Den behøver ikke stå i dit hjem da både den og dig er forbundet til internettet, og derfor kan kommunikere.

Det er hermed lokalt på serveren (Hvis PHP understøttes) at PHP software kører (PHP plugin), og imens serveren modtager forespørgsler fra klienter, behandler PHP programmet dine PHP filer lige inden de leveres til brugerens browser. Dvs. at dine PHP filer bliver oversat til HTML.
Kan man så aflæse brugerens browser størrelse? Nej det er ikke muligt da du ved at PHP koden afvikles serverside, og dermed ikke har adgang til brugerens computer.

Det er således ikke muligt for almindelige klienter at få fat i din skrevne PHP kode, medmindre de kender koden til din server selvfølgelig. Rasmus Lerdorf, opfinderen til PHP, definerede hvordan PHP kode skulle behandles, og lad os nu begynde på at lære PHP. Denne guide kommer ikke ind over Objekt Orienteret Programmering i PHP, da det er en begynder guide.
Af Rasmus Lerdorf og hans venner blev det defineret at denne linje kode fortæller serverens PHP program, at nu begynder en PHP kode:
<?php

Men hvornår slutter koden så igen? Det gør den når du skriver:
?>

Dvs. starten på alle dine fremtidige PHP koder starter med disse linjer kode:
<?php

// Herinde kommer dine variabler og funktioner

?>


I eksemplet ovenfor har jeg skrevet to skråstreger efterfulgt af tekst. Dette er blot en kommentar og vil ikke blive tolket som en sætning der skal eksekveres. For at gøre kode mere læsbart for dig og andre, anbefaler jeg at skrive kommentarer til hver linje, lige meget hvor garvet en programmør du er.
Modsat HTML kan man i PHP ændre i indholdet under kørslen, i form af variabler.

Du skal forestille dig at en variabel er en beholder som kan indeholde forskellige værdier. En værdi kunne f.eks. være et navn, et tal, en by osv. For at kunne identificere én variabel fra en anden, giver man variablerne(Beholderen) navne. Husk at du kan lave så mange variabler du har lyst til. Hvorfor hedder det variabler? Det gør det fordi det er en beholder der kan indeholde varieret indhold. Dvs. at den kan indeholde forskellige tegn, tal osv.

I PHP definerer man en variabel ved at skrive et dollartegn efterfulgt af variablens navn. Her er et sæt regler du skal have i baghovedet, når vi snakker om variabler:

1. Husk på da du er dansker, at du ikke må skrive æ, ø, å i dine variabel navne.
2. Husk også på at du ikke må lave bindestreger, men du må godt lave underscore: _
3. Du må ikke placere tal foran et variabel navn, men du må godt placere det bagved.
4. Det er altid en god ide at skrive variabel navne med små bogstaver, da du i større kode sammensætninger da kan have svært ved at huske variabel navnene.
5. Husk at give dine variabler menneskelige forståelige navne, og ikke f.eks. t1_tb2

Når vi skriver PHP kode må vi tænke i sætninger, som bliver udført kronologisk. Dvs. at hvis jeg skriver:
Gå din vej
Kom tilbage

Så vil ham/hende jeg siger det til, først gå væk og derefter komme tilbage, ikke komme og gå. I PHP definerer man en sætning/kommando slut ved at sætte et semikolon. Dette er smart da vi så kan placere sætningerne bare på en linje, og PHP softwaren på serveren vil stadig kunne forstå det. Eksempel:
Gå din vej; Kom tilbage
Selvfølgelig skal man i de fleste tilfælde ikke sætte sætningerne på en linje da det bliver svær kode at læse. Dette var bare for forståelsen af semikolonet.

Lad os nu lave en variabel som indeholder opfinderen af PHP's navn:
$php_opfinder = "Rasmus Lerdorf";

Forklaring:
Vi starter med at definere at nu starter en variabel, ved at skrive dollartegnet.
Derefter skriver vi variblens/beholderens navn, med henblik på de fem huskeregler.
Derefter bruger vi "er lig med" operatoren, til at tildele beholderen en værdi.
*Derefter sætter vi Rasmus Lerdorf mellem to dobbelte anførselstegn.
Til sidst slutter vi sætningen kommandoen af ved at sætte semikolon.

* Ligesom i dagligdagens aviser, blade mv. er der også forskel på enkelte anførselstegn og dobbelte anførselstegn i PHP. Dobbelte anførselstegn bliver brugt mest, især af nybegyndere. Her er en definition på de to forskellige måder at indkapsle data på:
Når data står imellem dobbelte anførselstegn, analyserer PHP's plugin om der kunne være nogle mulige eksekveringer i data. Et eksempel:
---------------------------------------------------------------
<?php
// Definere vores PHP opfinder
$php_opfinder = "Rasmus Lerdorf";

//Resultere i Opfinderen af PHP er: Rasmus Lerdorf
$ny_variabel = "Opfinderen af PHP er: $php_opfinder";
?>

---------------------------------------------------------------

I ovenstående eksempel vil variablen $php_opfinder blive analyseret og erstattet med variablens værdi. Derfor bliver det med dobbelte anførselstegn til at se således ud i $ny_variabel: Opfinderen af PHP er: Rasmus Lerdorf


Når data derimod står i enkelte anførselstegn, vil der ikke blive analyseret noget som helst, derfor vil dette eksempel være anderledes:
---------------------------------------------------------------
<?php
// Definere vores PHP opfinder
$php_opfinder = "Rasmus Lerdorf";

//Resultere i Opfinderen af PHP er: $php_opfinder
$ny_variabel = 'Opfinderen af PHP er: $php_opfinder';

?>

----------------------------------------------------------------

$ny_variabel er her lig med = Opfinderen af PHP er: $php_opfinder

Som du kan se er $php_opfinder ikke blevet erstattet med variablens værdi, nemlig Rasmus Lerdorf. Der vil således ikke blive eksekveret noget i selve data/indholdet af variablen.
For en bedre forståelse af disse regler, kan du kigge på dette kode eksempel hvor begge sætninger er ens:
---------------------------------------------------------------
<?php

// Definere vores PHP opfinder
$php_opfinder = "Rasmus Lerdorf";

//Resultere i Opfinderen af PHP er: $php_opfinder
$ny_variabel_dobbelte = "Opfinderen af PHP er: $php_opfinder"; // Denne variabels indhold
$ny_variabel_enkelte = 'Opfinderen af PHP er: ' . $php_opfinder . ''; // Er lig med dennes

?>

---------------------------------------------------------------

Du kan selv vælge hvilken metode du vil anvende, men jeg ville anbefale den med enkelte anførselstegn, da den stiller krav til programmøren om at skrive det korrekt og mere læsbart.

1.) Du kan hermed betragte dobbelte anførselstegn som eval() funktionen i Javascript, som udfører alt der står selvom det står imellem anførselstegn. Hvis du ikke kender eval() funktionen så glem dette, og tænk på at alt der står i dobbelte anførselstegn analyseres og udføres.
2.)Mens enkelte anførselstegn betragtes lige som det ser ud.

Nu da du har lært hvordan man bygger variabler op, og har fået en basal forståelse for hvordan de fungere, vil jeg gå et skridt videre. Nu skal vi snakke om hvordan vi udskriver ting til brugeren, så hans/hendes skærm ikke bare er blank når han ser din PHP side.

Rasmus Lerdorf og hans venner definerede kløgtigt nogle funktioner/strukturer som kan udskrive tekst på skærmen. Når vi taler om udskrivning til skærmen er der funktionen echo og funktionen print. Output på skærmen fra begge funktioner er fuldstændig identiske. For at gøre en lang historie kort, er echo marginalt hurtigere end print. Jeg har valgt ikke at komme ind over dette irrelevante emne der kun vedrører nørder som mig, og det ville også bare forvirre mere end gavne. Det er således dig selv der bestemmer hvilken funktion du bedst kan lide. Jeg har valgt echo da jeg synes den er hurtigst at skrive.

For at udskrive noget til skærmen med disse funktioner skal du blot skrive funktionens navn efterfulgt af enten en variabel eller tekst/data som er imellem anførselstegn.
Her er et eksempel på hvordan vi kan udskrive vores $php_opfinder variabel til skærmen:
---------------------------------------------------------------
<?php
// Definere vores PHP opfinder
$php_opfinder = "Rasmus Lerdorf";
echo $php_opfinder; // Her udskriver vi Rasmus Lerdorf på skærmen

?>

---------------------------------------------------------------
I ovenstående eksempel udskrev vi kun en variabel. Men det kunne da være smart at udskrive flere variabler. Så tænker du sikkert så skriver man da bare en ny linje med echo og variablen ligesom her:

---------------------------------------------------------------
<?php
// Definere vores PHP opfinder
$php_opfinder = "Rasmus Lerdorf";
$forfatter = "Magnus";

echo $php_opfinder; // Her udskriver vi Rasmus Lerdorf på skærmen
echo $forfatter; // Her udskriver vi Magnus på skærmen
?>

---------------------------------------------------------------

Det er også korrekt nok, men det kan gøres smartere. I PHP kan man nemlig bruge punktum operatoren til at sammensætte data/tekst. Dette kan kun vises med et eksempel. Nedenstående eksempel udskriver fuldstændig det samme som ovenstående, bare på en smartere måde:

---------------------------------------------------------------
<?php
// Definere vores PHP opfinder
$php_opfinder = "Rasmus Lerdorf";

// Definere mit navn
$forfatter = "Magnus";

echo $php_opfinder . $forfatter; // Her udskriver vi både Rasmus Lerdorf og Magnus på skærmen
?>

---------------------------------------------------------------

Læg mærke til det lille punktum som forbinder de to variabler.


Nu er du blevet sat godt ind i hvordan man bruger variabler og udskriver dem og tekst på skærmen. Som du sikkert har tænkt længe før dette, Hvor helvede skal jeg placere denne kode? Ja svaret kommer her.

For at din kode skal kunne virke skal det ligges ind på en server, som kan behandle din kode. Hvis du ikke har en server, er WAMP et godt alternativ. Jeg vil ikke gå i dybden med hvordan WAMP virker og hvordan du sætter det op. Men hvis du selv kan finde ud af hvordan du downloader det, og opsætter det, er det nok en god ide at gøre det.
For at forstå hvordan PHP filer bliver behandlet har jeg lavet en lille illustration, der kan hjælpe dig:

http://www.magnusbm.dk/PhpGuide/img.png

Det vil sige at du bliver nød til at lægge dine PHP filer ind på en server og forespørge dem som klient. Derfor kan du ikke prøve dine kode eksempler af hvis du ikke har en server eller ved hvordan WAMP fungere. Hvis du derimod ved hvordan man gør så læg din kode ind i notesblok og tryk på Filer -> Gem Som -> Vælg Filtype (*.php) -> Gem. Derefter uploader du koden til din server.

Igennem hele teksten har jeg givet nogle kode eksempler, som du gerne må uploade til din server og prøve dem af. Hvis du ikke ved hvad uploading er så må du søge på google og finde ud af hvordan du gør. Denne artikel er nemlig kun målrettet at lære selve sproget PHP.

Jeg vil ikke lægge skjul på at der nok kommer en opfølger på denne tekst da den slet ikke er fyldestgørende nok, men den vil ikke komme inden det næste halve år.

Et word dokument med denne artikel kan hentes her:
http://www.magnusbm.dk/ (...)

/Magnus

Skrevet man. d. 12. oktober 2009 kl. 17:44| #1

Tror du eksperten.dk er en udvekslingscentral for links?
Hvis du kan tage dig tid til at skrive en guide ind i Word Dokument (som der ikke engang er garanti for alle kan læse) kan du vel også tage dig tid til at klippe-klistre det ind i tekstfeltet hvor du oprettede guiden?

Skrevet man. d. 12. oktober 2009 kl. 19:35| #2

mbm2007 (7.862 point)
www.magnusbm.dk
Tak for responsen, ja jeg kan godt se der er et problem der. Men jeg synes det ville klæde sig hvis man fokuserede på indholdet af guiden og gav mig konstruktiv kritik, i stedet for at hakke på nogle der faktisk ikke havde tænkt over at ikke alle ville kunne læse det. Jeg valgte faktisk at skrive det i word, da man har flere muligheder for formatering af kode osv.

Jeg synes det er ærgeligt at der findes mennesker som ikke kan se det positive i at en 14 årig dreng prøver at gøre livet lidt bedre for andre ;)

Skrevet man. d. 12. oktober 2009 kl. 21:12| #3

Det ville faktisk klæde sig hvis man gjorde indholdet af guiden tilgængelig for alle gennem den kanal der er stillet til rådighed. Det handler ikke om hvorvidt 'alle kan læse den' men lige nøjagtig den måde du deler din viden på. Forestil dig hvis alle guides fremover blot linkede til opretterens personlige hjemmeside - hvilken værdi har eksperten.dk så reelt? Ingen.

Du får ingen konstruktiv kritik på dit indhold idet jeg ikke vil læse din guide. Mediet er stillet til rådighed gennem eksperten.dk

Jeg er i øvrigt ikke interesseret i din personlige holdning om min person; om du er 11, 14, 25, eller 37 år er mig dybt ligegyldigt - hvis du virkelig ville 'gøre livet lidt bedre for andre' brugte du de kanaler du blev stillet til rådighed gennem det forum du benytter. Det kaldet netikette - hvilket vi alle må indstille os på - uanset alder.

Skrevet man. d. 12. oktober 2009 kl. 22:36| #4

mbm2007 (7.862 point)
www.magnusbm.dk
Nogle mennesker tager tingene meget personlige, især nørder ;) Men ellers tak for responsen jeg tror jeg vil lave guiden om om nogle dage.

Skrevet man. d. 12. oktober 2009 kl. 23:07| #5

Jeg håber kommentaren i #4 var møntet på dig selv - ellers ville du udvise hykleri i forhold til din kommentar i #2.

Til sagen; jeg er nok lidt farvet af at have mere teknisk viden end de personer som er målgruppen for din guide. Men du får mine kommentarer alligevel.

1. Du omtaler 'klienten' som en person. En klient vil normalt (i 'nørdens' verden) være browseren som omtales.

2. "Modsat HTML kan man i PHP ændre i indholdet under kørslen, i form af variabler." er noget sludder. HTML og PHP har reelt set ikke noget med hinanden at gøre og PHP 'ændrer' som sådan ikke indhold under parsing. Din kode er dog afgørende for slutresultatet uanset hvad du bruger PHP til.

3. Hele afsnittet med "Gå din vej, Kom tilbage" giver ingen mening for mig. Det er uforståeligt og jeg kan slet ikke se sammenhængen i din afsluttende kommentar om semikolon.

4. "Du kan hermed betragte dobbelte anførselstegn som eval() funktionen i Javascript, som udfører alt der står selvom det står imellem anførselstegn" er rent nonsens. Variabler udvides i dobbelte anførselstegn og escapede tegn er tilgængelige via disse anførselstegn. eval() vil eksekvere en streng skrevet som kode (hvadenten det er PHP eller JavaScript) og anses generelt for at være forbundet med sikkerhedsrisici.

Overordnet set er det udmærket guide at starte på, der er dog nogle ting (som ovenstående) jeg synes du skulle kigge på.
Det undrer mig at du konsekvent kalder PHP for et plugin?

Skrevet man. d. 12. oktober 2009 kl. 23:26| #6

mbm2007 (7.862 point)
www.magnusbm.dk
Tak for kritikken jeg vil prøve at lave guiden om inden for de næste døgn. Og tak for at sætte punktum på mit hykleri :)

Skrevet tir. d. 13. oktober 2009 kl. 12:37| #7

hmanback (15.020 point)
Et spørgsmål jeg sidder med efter at have læst din guide:

Hvorfor offentligøre en guide som du selv aflsuttende beskriver som "...slet ikke er fyldestgørende nok..." og derudover først kommer med næste del om over et halvt år?

En grundig korrektur ville ikke have været af vejen.

Skrevet tir. d. 13. oktober 2009 kl. 21:43| #8


Skrevet tir. d. 17. november 2009 kl. 02:16| #9

eiken (9.320 point)
mbm2007  Tak for et godt indlæg

Skrevet tor. d. 02. september 2010 kl. 22:16| #10

tdh1309 (7.813 point)
Hmm, repox er en anelse hård!
Har ikke fået læst artiklen endnu, men som udgangspunkt er det da bedre at komme med et indlæg end at lade være!

Skrevet man. d. 20. september 2010 kl. 11:38| #11

#10
Som udgangspunkt er det bedre at lade være med at komme med et indlæg, hvis det man lærer andre er forkert. Det må være logik for perlehøns.

Artiklen er siden min første kritik også blevet væsentligt forbedret - andre kommentarer vil typisk gå på personlig kodestil som reelt set ingen værdi har for nybegyndere.

I øvrigt gik min første kritik også på at der oprindeligt kun var et link til et dokument på opretters personlige hjemmeside, som jeg ikke mener er i orden, hvilket jeg også tidligere i tråden har argumenteret for.

Som jeg ser det, vælger du at kommentere på mine kommentarer, fremfor at se på relevansen af dem i forhold til selve guiden, men jeg kan da opsummere lidt for dig, så du kan undgå at gennemgå guiden, hvis du finder den så irrelevant i forhold til kommentarerne:
Opretter har formået at skabe en guide som kan sætte nye udviklere i gang med PHP udvikling på en let forståelig måde, men mindst mulig risiko for at udvikle nogle uheldige misforståelser.

Skrevet ons. d. 11. maj 2011 kl. 01:55| #12

Jeg vil lige tillade mig at komme med et par kommentarer som læsere der ikke kender til PHP skal være opmærksomme på.

1. Som tidligere pointeret er ordet 'Klient' brug helt forkert i denne guide. Klienten er browseren og ikke en fysisk person når man normalt snakker webprogrammering. Andre steder på nettet menes der browser med klient.

2. Der står "Dvs. at dine PHP filer bliver oversat til HTML."
- Dette er faktisk ikke helt korrekt. PHP bliver ikke oversat til HTML, men kan sagtens udskrive HTML hvilket er den mest almindelige anvendelse. Derudover kan man fx. snildt bruge PHP til at udskrive XML og PNG.

3.  Der står "Kan man så aflæse brugerens browser størrelse?"
- For det første forstår jeg egentlig ikke sætningen. Browseren størrelse? Det antal MB som selve browser applicationen fylder? Nå. Men visse browser infomationer kan PHP sagtens hive ned. Man skal huske på at klienten (her ment som klient og ikke person) sender en forespørgsel til server, hvori browser infomation findes. Se mere på http://php.net/ (...)

4. Lille åndssvag detalje, men: "anbefaler jeg at skrive kommentarer til hver linje,". Puha. Du må da gerne gå i gang med at kommentere på mine scripts på 1,000 - 2,000 linjer. Men korrekt at dokumentation i form af kommentarer er fornuftigt.

5. Ang. anførselstegn. For det første glem alt om hvad der står om eval(). Det er rent nonsens og som ny til PHP bør du glemme navnet på denne funktion og aldrig lære det at kende. Desuden skal man huske at PHP er hurtigere til at eksekvere kode med singelquotes (') end med dobblequotes ("), da indholdet af strenge med dobblequotes skal "eksekveres" hvis der findes ting som "tekst: $var" eller "tekst: {$_GET['value']}"

Eller en fin introduktion til variabler. Men måske burde man også forklare om funktioner da disse er et uundværligt værktøj i arbejdet med PHP.

Skriv en kommentar



Mest populære guides

Guidens karakter
!!!Karaktér: 3
12 stemmer
31/01 - 2011
Af: heinzdmx

Dropbox - gratis online lagerplads

Jeg vil i denne guide forklare lidt om hvad Dropbox er og også hvordan du får mest mulig plads på Dropbox. Dropbox er kort sagt en service hvor du har dine data lagt til backup på både nettet og din egen computer.
Guidens karakter
!!!Karaktér: 4
33 stemmer
02/02 - 2009
Af: jkrons

Dato- og tidsberegninger i Excel

En introduktion til simple beregninger med dato og tid i Excel. Opdateret med afsnit om beregning af tillæg.
Excel  |  Læs »
Guidens karakter
!!!Karaktér: 4
21 stemmer
06/11 - 2011
Af: fromsej

Sådan fjerner du virus og malware

Udviklingen går stærkt på "skidt"fronten, så vi har sammensat en ny og effektiv programpakke til fjernelse af det.
Virus  |  Læs »

Log ind

   

   

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger