PHP (PHP: Hypertext Preprocessor) är ett skriptspråk som hjälper människor att göra webbsidor mer interaktiva genom att låta dem göra mer intelligenta och komplexa saker. PHP-koden körs på webbservern och genererar HTML som skickas till användarens webbläsare. Eftersom koden körs server-side syns inte källkoden för besökaren och det ger möjlighet till säker hantering av data, autentisering och databaskopplingar.

Hur fungerar PHP?

PHP bäddas ofta in i HTML: du skriver PHP-kod mellan och när en förfrågan når servern tolkas PHP-koden och resultatet (vanligtvis HTML) skickas tillbaka till klienten. Vanliga arbetsflöden inkluderar:

  • Formulärhantering: läsa in data från POST eller GET och bearbeta eller spara i en databas.
  • Sessioner och cookies: hantera inloggningar, hålla användarsessioner och anpassa innehåll.
  • Databasinteraktion: koppla upp mot MySQL, PostgreSQL eller andra databaser för att läsa/skriva data.
  • API-konsumption och -exponering: interagera med externa tjänster via HTTP eller erbjuda egna REST/GraphQL‑API:er.

Filändelser och serverinställning

Standard PHP-filtillägg är: .php, .php3 eller .phtml, men en webbserver kan ställas in för att använda andra filändelser. PHP kan köras på olika sätt mot webbservern, till exempel via mod_php (Apache), PHP-FPM (FastCGI, vanligt med Nginx) eller som kommandoverktyg (CLI).

Språkpåverkan och licens

Dess struktur har påverkats av många språk som C, Perl, Java, C++ och till och med Python. Det anses vara fri programvara av Free Software Foundation. PHP utvecklas aktivt och nyare versioner (t.ex. PHP 7 och PHP 8) har fokuserat på bättre prestanda, striktare typkontroller och nya funktioner som JIT-kompilering i vissa fall.

Användningsområden

  • Webbplatser och CMS: många innehållshanteringssystem som WordPress, Drupal och Joomla är skrivna i PHP.
  • Webbapplikationer: e‑handel, forum, portaler och interna system.
  • API-backends: bygga REST- eller GraphQL-tjänster som används av mobilappar och SPA (single-page applications).
  • Automatisering och skript: med PHP CLI kan du köra skript från kommandoraden för batchjobb och underhåll.

Ramverk och verktyg

Det finns många populära ramverk som förenklar utveckling och strukturering av PHP-projekt, till exempel Laravel, Symfony, CodeIgniter och Zend/Laminas. För paket- och beroendehantering används ofta Composer, vilket underlättar återanvändning av bibliotek.

Säkerhet och bästa praxis

  • Validera och sanera indata: lita aldrig på användardata. Använd giltighetskontroller och sanering.
  • Undvik SQL-injektion: använd förberedda uttalanden (prepared statements) eller ORM-lager istället för att interpolera variabler direkt i SQL.
  • Hantera filuppladdningar försiktigt: kontrollera filtyp, storlek och lagringsplats för att undvika exekvering av skadlig kod.
  • Använd säkra sessionsinställningar: sätt lämpliga cookie-flaggor (HttpOnly, Secure) och överväg session-tidsgränser.
  • Undvik farliga funktioner: minimera användningen av funktioner som eval(), exec() eller system() om inte absolut nödvändigt.

Exempel: enkel PHP-sida

<?php // Ett enkelt exempel som skriver ut dagens datum echo "Hej! Idag är " . date("Y-m-d") . "."; ?> 

Prestanda och skalbarhet

Nyare PHP-versioner erbjuder stora förbättringar i hastighet jämfört med äldre versioner. För produktion används ofta PHP-FPM tillsammans med en reverse proxy (t.ex. Nginx) och caching-lösningar (OPcache, varnish, memcached/Redis) för att skala och snabba upp applikationer.

Komma igång

  • Installera PHP via paket (apt, yum, Homebrew) eller använd färdiga utvecklingspaket som XAMPP, MAMP eller Laragon.
  • Konfigurera php.ini för felrapportering, maxminne och uploads.
  • Testa lokalt genom att placera .php-filer i webbserverns dokumentroten och öppna via webbläsaren, eller kör skript med PHP-CLI.

Sammanfattningsvis är PHP ett flexibelt och brett använt serversidespråk för webbutveckling. Det lämpar sig för allt från små personliga webbplatser till stora, komplexa webbapplikationer — förutsatt att man följer goda säkerhetsrutiner och moderna utvecklingsmetoder.