ASCII
We gaan leren wat ASCII is en hoe we met ASCII waarden in PHP kunnen werken.
Karakter
Wat is een karakter. Dat is één letter, cijfer of teken op de computer. Dus alle tekens die je ziet zijn een karakter, ook een spatie.
ASCII tabel
Alle karakters hebben een numerieke waarde. Dat komt omdat een computer alleen maar getallen (in nullen en enen) kan onthouden. Dus alles in een computer wordt omgezet in nummers. In de ASCII tabel kun je vinden welk nummer bij welk karakter hoort. In onderstaande tabel (http://www.asciitable.com/) zie je welk nummer bij welk teken hoort.
De waarde onder Dec is de decimale waarde en dat is de waarde waar wij het eenvoudigst mee kunnen werken. Kijk in de tabel waar het getal 9 staat. Zie je dat de ASCII waarde 57 is? En het uitoepteken heeft een waarde van 33.
Je ziet dat alle letters netjes op alfabetische volgeorde onder elkaar staan. De B is 1 groter dan de de A. Dus als we willen schuiven met letters dan hoeven we alleen maar de ASCII waarde van een letter te nemen en er N (1,2,3 of meer) bij op te tellen.
PHP
Je moet twee fiuncties in PHP kennen:
ord()
Hiermee maken we van een karakter een cijfer, dus ord('Z') geeft het getal 9.
chr()
Hiermee zetten we een nummer om in een karakter, dus chr(89) geeft een letter 'Y'.
We kunnen nu dus een karakter omzetten in een nummer, er iets bij op tellen en het nieuwe getal weer omzetten in een karakter.
Vraag: wat doen we als we bijvoorbeeld 1 willen optellen bij de letter 'Z'
Coderen
Als je het antwoord op deze vraag weet dan ben weet je alles om een encryptie algortime te maken dat letters verschuifd met N. Het enige dat je nog moet weten is dat je spaties ongemoeid laat. Spaties worden dus niet encrypt.
Dus maak een algortime dan een string en een nummer als input krijgt en dat de string encrypt door de afzondelijke letters x posities op te schuiven. Bijvoorbeeld, stel je object heet Crypt en je method heet encrypt, dan:
Crypt->encrypt('ABC ABC', 1) geeft als return value: 'BCD BCD'
Succes!