PHP

Strängar

Ofta pratar man om strängar eller textsträngar inom programmering. Det är inget magiskt utan helt enkelt en liten bit text, ett eller flera ord. En sträng kan också vara tom eller innehålla endast en bokstav, siffra eller annat tecken. Ett par exempel på strängar är:

"Erik Eriksson"
"abc123"
"Tre päron och två katter"
"ä"
"67"

Citationstecknen (") ingår alltså inte i själva strängen utan är bara till för att datorn ska förstå var strängen börjar och slutar. Hade vi skrivit 67 utan citationstecken (snuffar) hade det inte varit en sträng, utan ett heltal som också är en viktig typ i PHP. Heltal går att utföra matematiska operationer som plus och minus med, medan detta inte går med strängar. Eller rättare sagt, det är inte vettigt att göra det.

I login-exemplet använde vi strängar för att kontrollera användarnamn och lösenord. Först hämtades den data som användaren hade skrivit in till variablerna $username och $password för att sedan jämföras med strängarna "webbmaster" och "secret".

Nu ska vi ta en koll på ett par användbara funktioner för att jobba med strängar. Den första är till för att ta bort mellanrum i början och slutet av en sträng. Tänk dig att ett skript har fått in " Andersson" (alltså med ett mellanslag först) och skriptet ska sortera alla namn som den får in i bokstavsordning. Det första tecknet i strängen är " " (mellanslag) och blir det som sorteras efter. Troligen blir detta fel. Det man kan göra är att använda funktionen trim(sträng) för att få den bearbetade strängen utan mellanslag i början tillbaka. Det ser ut såhär:

$ny = trim(" Andersson")
Resultatet som hamnar i variabeln $ny kommer nu att vara "Andersson".

Nästa användbara funktion är substring som kopierar en viss del av en sträng och returnerar detta. T ex kan vi när vi har ett personnummer (med 10 siffror) ta fram födelsedatumet och bara skriva ut det på en viss sida.

$birthdate = substring("760505-1111", 0, 6)
Till funktionen substring skickar vi med en sträng, på vilken position vi ska börja kopiera och hur många tecken som ska kopieras. Värdet på $birthdate blir nu "760505".

För att mäta antalet tecken i en sträng finns strlen(). T ex kan vi göra en snabb koll om användaren har fyllt i nog många tecken i sitt personnummer genom att göra följande :

if (strlen($personnummer) < 10){
	echo ("För få siffror i ditt personnummer");
}

Vi kollar alltså om antalet tecken i personnumret är mindre än 10. Om så är fallet vet vi redan att användaren skrivit in ett ogiltigt personnummer och vi behöver inte ens kolla att det är ett korrekt födelsedatum eller fyra sista siffror. Det finns många liknande saker som vi måste göra med den information som användarna matar in innan vi lägger in den i en databas eller gör något annat beständigt med den. Men det är också en av styrkorna i PHP och det finns många funktioner som hjälper oss.