Programmeren in PHP Opleiding Ocean Technology Module HDM1
20 april 2015 Versie 6.7 S. Hibma
Programmeren in PHP
MIWB
Inhoudsopgave 1
Inleiding............................................................................................................................................ 3
1.1 Wat is programmeren .............................................................................................................. 3 1.2 Wat is nodig voor de programmeeromgeving ......................................................................... 3 2 Installatie benodigde programma’s ................................................................................................. 4 2.1 Webserver ................................................................................................................................ 4 2.2 Editor ........................................................................................................................................ 4 2.3 FTP-programma ....................................................................................................................... 4 3 Eerste programma ........................................................................................................................... 5 3.1 HTML-code ............................................................................................................................... 5 3.2 php-code .................................................................................................................................. 5 3.3 Variabelen ................................................................................................................................ 6 3.4 Toekenning van een waarde aan een variabele (assignment) ................................................ 6 3.5 Operatoren............................................................................................................................... 7 3.5.1 Practicum opdrachten...................................................................................................... 8 4 Programmastructuren...................................................................................................................... 9 4.1 Herhalingen (loops of lussen) .................................................................................................. 9 4.1.1 In PSD-vorm ..................................................................................................................... 9 4.1.2 De while lus in php ......................................................................................................... 10 4.1.3 De for-lus in php............................................................................................................. 11 4.2 Keuze opdrachten .................................................................................................................. 12 4.2.1 Een 2-keuze in PSD-vorm ............................................................................................... 12 4.2.2 Een 2-keuze in php ......................................................................................................... 13 4.3 Het meerkeuzediagram.......................................................................................................... 14 4.3.1 Meerkeuze in PSD-vorm ................................................................................................ 14 4.3.2 Meerkeuze in php .......................................................................................................... 15 5 Interactie tussen programma en gebruiker ................................................................................... 16 5.1 Formulieren............................................................................................................................ 16 5.2 POST en GET variabelen ......................................................................................................... 17 5.2.1 POST ............................................................................................................................... 17 5.2.2 GET ................................................................................................................................. 17 5.2.3 Controle van POST en GET variabelen ........................................................................... 18 5.2.4 Opdrachten .................................................................................................................... 19 6 De kunst van het programmeren ................................................................................................... 20 6.1 Netjes programmeren............................................................................................................ 20 6.2 Maken van het ontwerp dmv een PSD .................................................................................. 21 6.2.1 Voorbeeld programmaontwerp ..................................................................................... 21 6.3 Opdelen programma in losse delen via Include..................................................................... 22 6.3.1 Uitbreiding opdracht renteberekening .......................................................................... 22 6.4 Opdracht priemgetal .............................................................................................................. 23 7 Functies .......................................................................................................................................... 24 7.1 7.2 7.3
Scope van variabelen ............................................................................................................. 24 Argumenten van een functie ................................................................................................. 24 Resultaatwaarde van een functie .......................................................................................... 24 1
Programmeren in PHP
MIWB
7.4 Opdracht koers en verheid .................................................................................................... 25 7.4.1 Invoerformulier voor 2 posities ..................................................................................... 25 7.4.2 Controle van de ingevoerde posities ............................................................................. 26 7.4.3 Het hoofdprogramma .................................................................................................... 28 7.4.4 Omrekenen naar handelbare eenheden........................................................................ 29 7.4.5 Functie lengteverschil (dl) .............................................................................................. 29 7.4.6 Functie DVergrotende breedte (DVB) ........................................................................... 29 7.4.7 Functie Grondkoers loxodroom (Grklox) ......................................................................... 30 7.4.8 Functie Loxodroomverheid (Vlox) ................................................................................... 30 8 Files ................................................................................................................................................ 31 8.1 Openen en sluiten file ............................................................................................................ 31 8.2 Lezen en schrijven in een file ................................................................................................. 31 8.3 Browsen naar een file ............................................................................................................ 32 8.4 String bewerkingen ................................................................................................................ 33 8.5 Opdracht ................................................................................................................................ 33 8.5.1 Maak een programma wat:............................................................................................ 33 8.5.2 Uitbreiding: .................................................................................................................... 33 9 Arrays ............................................................................................................................................. 34 9.1 Wat is een array ? .................................................................................................................. 34 9.2 Hoe maak je een array ? ........................................................................................................ 34 9.3 Hoe spreek je een array aan ?................................................................................................ 35 9.4 Kan een array een array bevatten ? ....................................................................................... 36 9.5 Functies die met Arrays te maken hebben ............................................................................ 36 9.6 Opdrachten ............................................................................................................................ 38 9.6.1 1-dimensionale array ..................................................................................................... 38 9.6.2 2-dimensionale array ..................................................................................................... 38
2
Programmeren in PHP
MIWB
1 Inleiding 1.1 Wat is programmeren Programmeren is het maken van een lijst van instructies (meestal voor een computer). Een computer werkt alleen met binaire instructies die voor een normaal mens haast niet te lezen zijn. Daarom zijn er hogere programmeertalen ontwikkeld. De, in deze talen geschreven, programmacode moet dan wel door de computer worden terugvertaald naar binaire code (door een compiler). Bij het opstellen van een programma moeten we ons wel precies aan de regeltjes van een programmeertaal houden, anders reageert de compiler met foutmeldingen. Voorbeelden van moderne hogere programmeertalen zijn C++, Pascal, Visual Basic, PHP. Wij zullen programmeren in PHP. Dit is een bijzondere programmeertaal omdat hij draait op een Internetserver en dat hoeft beslist niet je eigen computer te zijn. De communicatie met de gebruiker loopt geheel via Internetpagina’s. PHP wordt vooral gebruikt om “Dynamische websites” te maken, maar is ook bij uitstek geschikt om web-based applicaties te maken. Dat is in deze cursus uiteindelijk ons doel.
1.2 Wat is nodig voor de programmeeromgeving Een computer (webserver) waarop de volgende programmatuur draait:
host-programma voor webpagina’s. Deze maakt webpagina’s, die op een webserver staan, zichtbaar voor Internetbrowsers (Internet Explorer, Firefox etc). Voorbeelden zijn: Apache en ISS. script processor (bv php, asp). Dit zijn serverside script-processors. Ze draaien op de webserver en produceren HTML-code die naar de cliënt wordt gestuurd. De cliënt hoeft, behalve een Internetbrowser, dus helemaal geen programmatuur te installeren om een programma te draaien. Dit in tegenstelling tot bv Javascripts. die samen met de HTML-code naar de cliënt worden gestuurd. De cliënt moet hiervoor vaak ook onderdelen installeren om deze applicaties te draaien (dit gaat overigens vaak automatisch). database-programma voor opslag gegevens (bv mysql, Microsoft SQL, postgre, access). Een database is niet altijd strikt nodig.
Verder moeten we de scripts schrijven, controleren en op de juiste plaats neerzetten:
editor, liefst met wat syntaxcontrole (PHP-designer, Notepad++, Dreamweaver) FTP-programma, om scripts en files op de juiste plaats neer te zetten. Dit is met name nodig als de webserver op een andere locatie staat of op een ander platform (Unix, Linux) draait dan de ontwikkelomgeving. Voorbeelden zijn WS-FTP95 en Filezilla.
3
Programmeren in PHP
MIWB
2 Installatie benodigde programma’s 2.1 Webserver Er zijn in principe 2 mogelijkheden:
we maken gebruik van een externe webserver. Bij de NHL heeft iedereen een stukje webruimte om webpagina’s neer te zetten: http://webserv.nhl.nl/~loginnaam Daarnaast kun je natuurlijk ook een eigen domein aanvragen bij een Internet provider. we maken van onze eigen computer (laptop) een webserver. We moeten dan (zie vorige paragraaf) een host-programma, een script-processor en (eventueel) een database-programma installeren. Van Internet kun je installatiepakketten downloaden die al deze zaken in één keer installeren. Dit worden wel WAMP pakketten genoemd (Windows Apache MySQL PHP). Voor Apple-computers wordt dit MAMP!
Wij gaan in de lessen mogelijkheid 2 gebruiken. Het werkt het snelst en ons geknoei staat niet meteen online.
2.2 Editor In beide gevallen moeten we op onze lokale computer een editor beschikbaar hebben. In principe is Notepad voldoende, maar een programma als PHP-designer of Notepad++ werkt veel fijner. De regels zijn genummerd en er zitten mogelijkheden in voor foutopsporing. Zie Blackboard voor het programma en installatie.
2.3 FTP-programma Als we op onze lokale computer een webserver hebben draaien is dit niet nodig: we kunnen gewoon met de Windows verkenner de bestanden op de juiste plaats neerzetten. Draaien we onze webpagina’s op een externe server dan kunnen we met bv WS-FTP de programma’s uploaden. Zie voor installatie en instellingen ons Intranet: Intern/ICT/Software instal. en instelling/WsFTP .
4
Programmeren in PHP
MIWB
3 Eerste programma Een php-programma produceert dus HTML-code (Hyper Text Markup Language) die over het Internet naar de cliënt wordt gestuurd. We moeten dus goed met HTML overweg kunnen om met php te kunnen werken. Hieronder eenvoudige voorbeelden.
3.1 HTML-code Een webpage heeft altijd de volgende gedaante:
eventuele headings (mag je eerst ook leeg laten) Hello world
Als we deze code opslaan onder de naam index.html in de “documentroot” van de webserver, dan zul je, als je met een browser naar het adres van je webserver gaat, de volgende uitvoer krijgen: Hello world
Dit heeft nog niets met PHP te maken. Het wordt anders als we de naam van het bestand veranderen in index.php. In dat geval zal de webserver de pagina door de php-processor halen. In bovenstaande voorbeeld zit geen php-code. De php-processor zal dit dus gewoon als HTML doorgeven naar de browser van de cliënt.
3.2 php-code PHP-code staat altijd tussen de volgende tags:
De eerste php instructie die we leren is: echo. De regel in het voorbeeld waar Hello world wordt afgedrukt kunnen we schrijven als:
Eventueel kunnen we ook (een deel van) de omliggende HTML door php laten afdrukken. Het programma zou er dan als volgt uitzien:
5
Programmeren in PHP Hele programma in php: "; echo "
"; echo ""; echo ""; echo "Hello world"; echo ""; echo "