Logotyp för Björns studiewebb

PHP-lathund (del 2)

Inledning

Denna sida innehåller andra delen av lathund för PHP. Denna del behandlar de funktioner och globala variabler som finns tillgängliga i PHP. Listan på funktioner är inte komplett då det finns ca. 2000 funktioner i PHP (och databasfunktioner beskrivs på egen webbsida).

För en komplett beskrivning av PHP rekommenderas PHP-dokumentation på adressen www.php.net. Den finns att ladda ner som bl.a. en Windows-hjälpfil (.CHM).

Tanken med denna sida var att göra en referenslista för PHP - det har blivit en lite väl omfattande sida. :-) Därför har lathunden delats i två delar. Framöver kommer jag (antagligen) att göra exempel för de olika sakerna som finns på denna sida. (För den vetgiriga så innehöll denna webbsida ca. 300 rader med HTML-kod den 6/01-04.)

Funktioner (och relaterade konstanter)

Nedan visas bara ett utdrag av funktioner, dess obligatoriska parametrar och en förklaring till vad dom gör. Några funktioner kan ta emot fler parametrar än som visas här. (Funktionerna presenteras på detta sätt för att t.ex. visa på vilka funktioner som finns. Se PHP-manual för en mer komplett beskrivning av funktionerna.) Funktionerna har delats upp i följande kategorier:

Datum och tid

Klicka på funktionsnamnet för visa exempel (observera att webbserver med denna webbsida måste stödja PHP för att exempel ska fungera).

  • date() - returnerar en sträng med aktuellt datum och tid. Som argument skickas en sträng med "formattecken" med vad som ska returneras. (Se dokumentation för funktion för vilka "formattecken" som kan användas.)
  • getdate() - returnerar en vektor med datum och tids delar. (Se dokumentation för vilka index vektorn innehåller.)
  • mktime() - returnerar ett heltal motsvarande tid och datum som ska skapas. Som parametrar till metod skickas tids- och datumdelar (timme, minuter, sekunder, månad, dag och år). Används lämpligen med funktionen date() för att skriva ut datum.
  • strftime() - returnerar en sträng med datum och tid - antingen aktuellt eller det som skickas som andra parameter till metod. Som första parameter skickas sträng med "formattecken" (inte samma som för date() dock!).
  • strtotime() - returnerar ett heltal motsvarande tid och datum som skickas som parameter till metod. Används lämpligen med funktionen date() för att skriva ut datum.
  • time() - returnerar ett heltal motsvarande aktuell tid och datum. Används lämpligen med funktionen date() för att skriva ut datum.

Observera att datum brukar kunna ställa till problem! Datumformaten är olika i olika länder, t.ex. Sverige ([YY]YY-MM-DD), Storbritannien (DD/MM/YY) och USA (MM/DD/YY). Kontrollera därför hur datumen fungerar (vilket format dom har) på datorn du ska placera PHP-sidorna på!

Konvertering

Konvertering i PHP sker med cast-operatorer, d.v.s. precis som i Java. Det finns fyra datatyper som kan konverteras till: int, float, string och array.

$heltal = (int)$strang;

Matematiska

  • rand() - returnerar ett slumpmässigt heltal. Som parametrar till funktion kan min- och maxvärde skickas.

Strängar

Nedanstående funktioner returnerar en ny (manipulerad) sträng:

  • htmlentities() - konverterar alla specialtecken i HTML (t.ex. & och ") till HTML-kod i sträng som skickas som parameter.
  • htmlspecialchars() - konverterar de viktigaste specialtecknen i HTML (&, ", ', < och >) till HTML-kod i sträng som skickas som parameter.
  • ltrim() - returnerar sträng som skickas som parameter utan inledande mellanslag.
  • money_format() - returnerar en sträng formaterad som valuta. Används lämpligen tillsammans med funktionen setlocale().
  • number_format() - returnerar en formaterad sträng.
  • printf() - skriver ut en formaterad sträng (som i C).
  • rtrim() - returnerar sträng som skickas som parameter utan avslutande mellanslag.
  • sprintf() - returnerar en formaterad sträng (som i C).
  • str_pad() - returnerar en sträng av viss längd (skickad som andra parameter) där sträng fyllts ut med blanksteg eller ev. tecken som skickats som tredje parameter. Sträng som fylls ut skickas som första parameter.
  • str_replace() - ersätter alla förekomster av en sträng i en annan sträng med värdet av en tredje sträng.
  • strchr() - se strstr().
  • strlen() - returnerar längden av en sträng (som skickas som parameter).
  • strpos() - returnerar position i en sträng som en andra sträng förekommer.
  • strrpos() - som strpos() fast börjar leta bakifrån.
  • strstr() - returnerar resterande tecken i sträng fr.o.m. första förekomsten av en andra sträng. Som första parameter skickas sträng att söka i och som andra sträng att söka efter.
  • substr() - returnerar en delsträng av en sträng. Första parameter är sträng att kopiera från och som andra parameter första position att kopiera från. Som tredje parameter kan antal tecken att kopiera skickas.
  • trim() - returnerar sträng som skickas som parameter utan inledande eller avslutande mellanslag.

Variabler

  • isset() - returnerar sant om variabel har satts till ett värde (initierats).
  • is_xxx() - returnerar sant om en variabel är av en viss typ (ersätt xxx med typ som ska kontrolleras, t.ex. is_array(), is_float()).
  • unset() - förstör värde i variabel (d.v.s. isset() kommer returnera falskt).

Vektorer

Vektorer är en inbyggd datatyp och vi kan använda funktioner för att t.ex. sortera innehåll i vektorer. VI kan även använda en s.k. elementpekare för att hålla reda på aktuell position i vektor.

  • asort() - sorterar vektor fallande på värde och behåller association med elementens nycklar (index). Används främst då index är strängar.
  • asort() - sorterar vektor stigande på värde och behåller association med elementens nycklar (index). Används främst då index är strängar.
  • count() - returnerar heltal med antal positioner i vektor.
  • current() - returnerar aktuellt elements värde. Används främst tillsammans med funktioner som next() och prev.
  • each() - returnerar aktuellt elements nyckel och värde.
  • key() - returnerar aktuelt elements nyckel.
  • krsort() - sorterar vektor fallande efter nyckel. Används främst då index är strängar.
  • ksort() - sorterar vektor stigande efter nyckel. Används främst då index är strängar.
  • next() - flyttar elementpekare till nästa element.
  • prev() - flyttar elementpekare till föregående element.
  • reset() - flyttar elementpekare till första elementet i vektorn.
  • rsort() - sorterar vektor fallande efter värde. Används främst då index är ett tal motsvarande position i vektor.
  • sort() - sorterar vektor stigande efter värde. Används främst då index är ett tal motsvarande position i vektor.
  • usort() - sorterar vektor m.h.a. funktion som skickas som andra parameter.

Till början på sida

Globala variabler

PHP har ett antal globala variabler - vilka beror på hur PHP-motorn konfigurerats. De globala variablerna finns alltid tillgängliga via ett antal vektorer. Men om konfigurationsinställningen register_globals satts till "on" så finns dessa globala variabler tillgängliga som "vanliga" variabler. (Se bl.a. PHP och formulär.)

Vektorer

Många av de globala vektorerna innehåller samma data som andra vektorer. Nedan beskrivs de mest intressanta.

  • $_SERVER - innehåller data om webbserver och klienten (webbläsaren).
  • $_GET - innehåller data från en HTTP-GET-begäran.
  • $_POST - innehåller data från en HTTP-POST-begäran.
  • $_COOKIE - innehåller HTTP-begärans alla cookies.
  • $_REQUEST - innehåller samma data som i $_GET/$_POST och $_COOKIE.
  • $_SESSION -
  • $GLOBALS - innehåller allt som finns i ovanstående vektorer.

Ytterligare vektorer är $_ENV och $_FILES

I exempelsidor nedan så finns två formulär - ett som skickas med HTTP-GET och ett som skickas med HTTP-POST för att olika innehåll i vektorer ska kunna testas.

Vektorn $_SERVER

Några av de värden som är av intresse finns bakom nedanstående index

  • 'SCRIPT_NAME', 'URL', 'PHP_SELF' - tre värden som refererar till samma sak
  • 'HTTP_REFERER' - adress som webbläsare kom ifrån (den webbsida som länkar till aktuell webbsida).
  • 'REMOTE_ADDR' - IP-adress för klient, t.ex. 193.11.82.11.
  • 'REMOTE_HOST' - URL för klient, bpn.eki.mdh.se.
  • 'PATH_TRANSLATED' - fysisk sökväg till webbsida på webbserver.

Se exempel.

Vektorerna $_GET och $_POST

Dessa två vektorer innehåller data som skickats från formulär. D.v.s. innehållet i respektive vektor beror alltså på hur formulär skickats - HTTP-GET eller HTTP-POST, d.v.s. vektorerna motsvarande HTTP-GET resp. HTTP-POST.

Denna vektor innehåller index som motsvarar de fält som finns i formulär. D.v.s. om vi har ett fält med namnet 'anvid' så kommer det finnas ett motsvarande index med samma namn i denna vektor. Viktigt är att använda rätt skiftläge (gemener och versaler) som namn på fält i formulär.

Se exempel.

Data i dessa vektorer kan även nås via vektorn $_REQUEST (och på ett lite krångligare sätt via vektorn $GLOBALS - främst för bakåtkompabilitet.)

Vektorn $_COOKIE

Denna vektor innehåller index som motsvarar de cookies som skrivits till besökarens webbläsare. D.v.s. om vi skriver en cookie med namnet 'anvid' så kommer det finnas ett motsvarande index med samma namn i denna vektor. Viktigt är att använda rätt skiftläge (gemener och versaler) som namn på cookie.

Data i denna vektor kan även nås via vektorn $_REQUEST (och på ett lite krångligare sätt via vektorn $GLOBALS - främst för bakåtkompabilitet.)

Vektorn $_REQUEST

Se beskrivningar för vektorerna $_GET/$_POST och $_COOKIE.

Eftersom denna vektor innehåller både cookies och data från formulär så måste vi se till att vi inte använder samma namn på en cookie och ett fält i ett formulär om vi vill använda denna vektor.

Se exempel.

Vektorn $_SESSION

Denna vektor innehåller eventuella värden på sessionsvariabler.

Som standard så aktiveras inte sessioner för alla besökare, vilket gör att denna vektor inte alltid är tillgänglig (d.v.s. odefinierad). Detta kan ändras i konfigurationsfilen (PHP.INI - sätt session.auto_start till 1) eller session manuellt startas med funktionen session_start().

Vektorn $GLOBALS

Denna vektor innehåller som sagt de flesta andra data från övriga vektorer. Men några nås via andra sätt (bl.a. innehåll i formulär). Denna vektor finns främst kvar för bakåtkompabilitet.

"Namngivna" variabler

De "namngivna" variablerna motsvarar namnen på index i variabler ovan. Eftersom det är variabler så sätter vi ett dollartecken framför, t.ex. $SCRIPT_NAME och $REMOTE_ADDR som motsvarar samma index i vektorn $_SERVER.

Bland dessa variabler så hittas även de som motsvarar fält i formulär. D.v.s. om vi har ett fält med namnet 'anvid' så kommer det finnas en motsvarande variabel med samma namn (med ett dollartecken före, d.v.s. $anvid). Viktigt är att använda rätt skiftläge (gemener och versaler) som namn på fält i formulär.

Se exempel.

Genom att registrera dessa globala variabler så introducerar vi även en säkerhetsrisk, d.v.s. vi bör undvika dessa variabler.

(Se bl.a. PHP och formulär för hur denna typ av variabler fungerar med formulär.)

Till början på sida | Tillbaka till PHP

Länkar

(Kommer... eller???)