Les 3

Onze eerste stappen in PHP

In deze les leert u code schrijven en op welke wijze u deze code opslaat als een php bestand.
Zoals reeds eerder gezegd, PHP is een script taal . Met onze editor gaan we code schrijven, en de code dan opslaan als een *.php bestand. Wat gebeurt er nu als je dergelijke code opvraagt met je browser ?

Aangezien de naam van onze pagina de extensie *.php gaat hebben, weet de webserver automatisch dat deze pagina php code bevat, en vooraleer de pagina te tonen, gaat de webserver de pagina doorsturen naar de php interpreter, die de code regel per regel zal lezen, en het resultaat van die code terug sturen zal  naar de webserver, die dan op zijn beurt het resultaat zal terug geven in de browser van de client.
Het voordeel van deze werkwijze, is dat alles gedaan wordt op de server, en de surfer enkel het uiteindelijk product ziet. De surfer moet geen enkel plugin installeren voor zijn browser !

De interpreter doet niets anders dan de code uitvoeren, en het resultaat van die code omzetten in begrijpelijke HTML taal voor je browser. Aangezien je enkel het eindresultaat te zien krijgt, ga je nooit php code te zien krijgen in je webbrowser, ook niet als je de bron bekijkt van de pagina. Bij javascript ligt dat anders bijvoorbeeld. Bij java script moet je browser dit ondersteunen, en wordt de code uitgevoerd bij de client, en niet op de server. Aangezien de client de code moet uitvoeren, kan je deze code dan ook te zien krijgen als je de bron van de pagina opvraagt.

De PHP notatie

De PHP code wordt rechtstreeks in de HTML pagina ingevoerd. Waar de code wordt ingevoerd speelt geen enkele rol. Het voornaamste is dat je aangeeft waar de code begint door middel van de tag <?php en waar de code eindigt door middel van de tag ?>
Deze tags zijn de lange versie, conform de XML richtlijnen. Je kunt de tags ook schrijven op de korte manier als <? en ?> en men heeft ook gedacht aan de liefhebbers van ASP <% en %>

De verkorte schrijfwijze van de tags is niet aangeraden. Mocht je een php.ini file hebben waar deze verkorte schrijfwijze niet wordt toegestaan, gaan je scripts eenvoudig niet werken. Lokaal is dat geen probleem, je kan altijd je php.ini gaan aanpassen zodat deze verkorte schrijfwijze ook gaat werken. Als je echter je scripts gaat onderbrengen bij een webhoster, ga je daar niet in de mogelijkheid verkeren om de php.ini te gaan aanpassen.


Nog een reden om de lange schrijfwijze te gebruiken : een <?php schrijfwijze ga je sneller terugvinden in een pagina met php code.



Een online cursus is mooi, doch een site ergens hosten is niet gratis. Je kunt nu alle code uit deze cursus toegestuurd krijgen, alsook de ganse cursus in een pdf formaat. Je kan deze via de telefoon bestellen. Kostprijs : voor Belgie : 1.78 € en voor Nederland : 1.65 €.   Klik hier om de cursus te bestellen.


Ons eerste script : Hello World !

Zoals in elke programmeertaal is tonen van Hello World ! het eerste wat geleerd wordt, en ik zal deze traditie niet breken :-)
Open nu de crimson php editor en kies voor File->New, of je klikt op het wit blad icoontje in de menubalk en we tikken vervolgens volgende code in :

<?php
echo "Hello World !";
?>

Dit is heel simpele code. Mocht er iets verkeerds gaan, moet je niet ver zoeken om de fout aan te passen. We gaan later pagina's gaan schrijven met heel wat code in. Soms gaan we in de pagina iets veranderen, zodat je het resultaat kan zien. De crimson editor heeft de mogelijkheid om iedere regel code te laten voorafgaan door een regelnummer. We zetten dit aan door te klikken op View->Line Numbers. Nadat we dit gedaan hebben ziet ons script er nu als volgt uit in de crimson editor :

broser preview

                                [onze regelnummers in de crimson editor]

Nu gaan we dit dokument opslaan. De vraag rest alleen nog, waar en hoe ? Aangezien we hier php code opgenomen hebben in ons document, gaat onze pagina de extensie .php moeten krijgen, zodat de server weet dat hij deze pagina eerst naar de php interpreter moet sturen, vooraleer het resultaat weer te geven in de browser. We moeten deze pagina ook opslaan in een directory (map), waar de server deze kan terugvinden. We gaan deze dan ook opslaan in de map c:\wamp\www en we geven het de naam hello.php .

Veel editors hebben de mogeljkheid om een preview te tonen van de gemaakte pagina. Voor PHP scripts werkt dit niet ! Zoals gezegd, PHP is een servertaal en kan enkel uitgevoerd worden door een webserver met PHP ondersteuning. Om het resultaat te zien van je werk, moet je dus de pagina in de webroot van je webserver plaatsen, en surfen naar de aangemaakt pagina, om het resultaat te zien.


Nadat we de pagina hebben opgeslagen, klikken we op het wamp icoontje in de systray en kiezen voor localhost, en we vervolledigen de url in de adresbalk als volgt :

http://localhost/hello.php, wat het volgende resultaat oplevert in onze browser  :



                                  [ resultaat van ons hello world script in onze browser]

Proficiat ! Jullie hebben je eerste werkende script geschreven in php. We gaan nu ons script eens nader ontleden.

1. <?php
2. echo "Hello World !";
3. ?>

Regel 1 : dit is onze begintag waarmee we aangeven dat alles wat nu volgt tot aan onze eindtag op regel 3,  php code is, bestemd voor de php interpreter.

Regel  2 : is een regel php code, die we nu eens nader gaan bekijken. We gebruiken hier de php code echo om te beginnen. Met echo geven we aan dat we iets naar het scherm willen printen ( lees : tonen in de browser ). Vervolgens hebben we een dubbele quote gevolgd door de tekst Hello World ! en terug een dubbele quote. Dit is belangrijk ! Goed onthouden ! Als je het echo commando gebruikt, wordt alles wat tussen de dubbele quotes staat getoond in de browser. En op het einde van de regel zien we een punt-komma. Dit is ook heel belangrijk. Iedere regel php code wordt beëindigd met een punt-komma. Op die wijze weet de php interpreter dat hij aan het einde is van de regel code, en dat alles wat nadien volgt, nieuwe code is.

Regel 3 : dat is onze eindtag, en daarmee geven we aan dat de php code ten einde is.
Laten we nu eens regel 2 veranderen in :

echo 'Hello World !';

Waarna we de pagina terug opslaan. ( je hoeft nu enkel te klikken op het diskette icoontje van de crimson editor, aangezien ons hello.php script reeds gesaved werd op de goede plaats .)

We openen nu terug ons script in onze browser, en wat merken we ? Inderdaad, het resultaat is identiek. Zoals je ziet, kan je dubbele quotes of enkele quotes gebruiken om gewone tekst weer te geven. Ik leg hier wel de nadruk op gewone tekst. We gaan daar later nog op terugkomen, want deze enkele en dubbele quotes zijn heel belangrijk.


PHP is een aanvullingstaal op HTML. Dit wil zeggen dat we gewoon PHP code en HTML code door elkaar kunnen gebruiken.


Als we nu onze tekst Hello World ! in het vet wensen weer te geven, gebruiken we daarvoor de HTML tags <b></b> of <strong></strong>. We veranderen terug onze regel 3 in :

echo '<b>Hello World !</b>';

Terug opslaan, en we bekijken het resultaat in onze browser. Zoals je kunt merken, wordt de tekst nu inderdaad vet weergegeven. Om de tekst nu gecentreerd weer te geven in onze browser, maken we gebruik van de <div align="center"></div> tags. We veranderen nu onze regel 3 terug in :

echo '<div align="center"><b>Hello World !</b></div>';

Opslaan en het resultaat in onze browser bekijken. En onze tekst Hello World ! wordt nu inderdaad gecentreerd weergegeven.
En nu onze enkele en dubbele quotes. In onze regel 3 gebruiken we voor ons echo commando een enkele quote aan het begin en een enkele quote aan het einde van het commando. Probeer nu eens die enkele quotes te veranderen door dubbele, en kijk dan eens naar het resultaat. In plaats van de uitvoer van ons script te zien in onze browser krijg je nu de melding :

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in c:\wamp\www\hello.php on line 2

En zo krijgen we onze eerste fout in PHP. Het betreft hier een Parse error : syntax error. Een syntax error betekent dat je gezondigd hebt tegen de toegelaten schrijfwijze in PHP. Een syntax error kan je vergelijken met een taalfout ( wort i.p.v wordt ). Nu hebben we hier geen taalfout in de werkelijke zin van een schrijffout, maar hebben we gezondigd tegen de schrijftaal dat PHP gebruikt. En deze schrijftaal bepaalt : het echo commando dat geplaatst wordt tussen dubbele quotes, mag verder geen dubbele quotes meer bevatten.


Je mag slechts een dubbele quote hebben aan het begin van het echo commando en op het einde.


Voor het ogenblik is dat voor jullie voldoende, we komen nog terug op die quotes, want die zijn heel belangrijk. Voor het ogenblik hoeven jullie enkel te weten dat je geen dubbele quotes mag gebruiken tussen de dubbele quotes van het echo commando. Ons script werkt nu natuurlijk niet meer, en we vragen ons dan af hoe we dat nu moeten oplossen.

Nu om aanhalingstekens te gebruiken binnen de eerste en laatste dubbele quotes, moeten wij deze escapen zoals dat gebruikelijk is in iedere programmeertaal. Het escapen gebeurt door middel van de backslash "\". Met de backslash vertellen wij PHP dat hij het letterteken na de backslash letterlijk moet opvatten en deze niet moet interpreteren. We zullen die backslash nog veelvuldig moeten gebruiken, niet alleen om aanhalingstekens te escapen, maar alles op zijn tijd. Onthoud als ik spreek over escapen, dat ik het over die fameuze backslash heb.

Hoe moet onze regel 3 er dan uiteindelijk uitzien ?

echo "<div align=\"center\"><b>Hello World !</b></div>";

En op die wijze zal de tekst Hello World ! correct gecentreerd worden weergegeven in je pagina.


Zoals je ziet, is dat verwarrend om het zo in te tikken. Het is dus het beste dat je steeds enkele quotes gebruikt, als je tekst letterlijk wilt weergeven.

Commentaar


Gebruik commentaar in je scripts. Specifieer door middel van commentaar wat elke lijn van je code uitvoert.


Dit klinkt natuurlijk belachelijk bij korte scripts, maar eenmaal je grotere scripts gaat aanmaken en je moet een paar maanden later wat aan je script aanpassen, zul je zeker vergeten zijn welke rol deze lijn heeft of wat de betekenis kan zijn van deze tiende sluitende accolade. Wedden ?

Syntax van commentaar onder PHP

Eerst en vooral, commentaar beïnvloed de werking van het script niet. Het is wat het moet zijn, gewoon commentaar. Commentaar kan men op de volgende wijze invoeren :

//Ziehier een korte commentaar regel

of

/* Dit commentaar kan gespreid worden
over meerdere regels */

of

# Dit is commentaar die we
# gewoon zijn onder Perl
# of shell scripting.

Ter herinnering : als je commentaar wilt plaatsen in de HTML syntax :
<!-- en het commentaar wordt afgesloten met -->

of

 //-->
Commentaar kan ook nuttig zijn om fouten op te sporen. Je hebt enkele lijnen toegevoegd aan je code, en plots werkt je script niet meer ? Je kunt dan één lijn uit commentariëren, vervolgens een andere om zo de fouten te vinden. Een ander gebruik is, om een bestaande lijn code te commentariëren en die te vervangen door een nieuwe. Als er iets fout gaat, heb je nog steeds de originele lijn code ter beschikking om die eventueel terug te plaatsen.

Unix gebruikers weten dit, alhoewel het vaak niet gedaan wordt, maar als je config bestanden moet veranderen op jouw systeem, plaats je dan de bestaande regel in commentaar en voeg je de nieuwe toe die je wilt hebben. Bij belangrijke config bestanden kan dit je systeem om zeep helpen zodat je moet overgaan tot herinstallatie in het uiterste geval. Commentaar kan dus werkelijk belangrijk zijn.


Les 1 Les 2 Les 3 Les 4 Les 5 Les 6 Les 7 Les 8 Les 9 Les 10 Les 11 Les 12 Les 13 Home