Varför PHP när det finns HTML
För er som vet vad PHP är kan sluta läsa nu. Denna artikel är nämligen väldigt grundläggande och förklarar skillnaderna mellan PHP och HTML eller snarare förklarar att PHP och HTML är två helt olika saker.
HTML är en syntax för att presentera information på Internet och alla som någon gång gjort en webbsida har arbetat med HTML. Även om man arbetar med en editor så arbetar man med HTML fast man ser det inte. Ett enkelt HTML-dokument kan se ut så här:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Min webbsida</title>
</head>
<body>
<p>Detta är min webbsida.</p>
</body>
</html>
HTML-dokument skickas direkt till din webbläsare från servern utan att servern bryr sig om vad HTML-dokumentet innehåller.
PHP är däremot en helt annan sak. PHP är ett programmeringsspråk. Kort sagt så kan man säga att PHP används för att skapa HTML-dokument. För att använda PHP med HTML så skriver man PHP-skript. PHP-skript behöver inte innehålla PHP-kod men till skillnad från HTML-dokument så kör servern PHP-skriptet. Det HTML-dokument som skickas till dig är det som PHP-skriptet skapade. Ett enkelt PHP-skript kan se ut så här:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Min webbsida</title>
</head>
<body>
<p>Detta är min webbsida.</p>
<p>Klockan är nu: <?php echo date("H:i"); ?></p>
</body>
</html>
Som du ser är det inte någon stor skillnad på PHP-skriptet och HTML-dokumentet. Det som är speciellt med PHP-skriptet är det som är mellan <?php och ?>. Dessa start- och sluttaggar talar om för servern att det som finns mellan dem är PHP-kod. Servern kommer då att köra den koden och just i detta exemplet så kommer den biten kod att returnera ett klockslag. Vilket klockslag beror på när du surfar in på sidan. Om vi säger att klockan är 20:59 när du surfar in på sidan så kommer servern att skicka dig ett HTML-dokument som ser ut så här:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Min webbsida</title>
</head>
<body>
<p>Detta är min webbsida.</p>
<p>Klockan är nu: 20:59</p>
</body>
</html>
Att PHP-skripten körs på servern innan sidan skickas till din webbläsare har sina begränsningar. Det betyder att PHP inte kan göra saker beroende på vad du gör utan att skicka en ny sida till dig. Till exempel så kommer klockslaget i exemplet inte ändras beroende på om klockan ändras. Klockslaget ändras först när du hämtar sidan på nytt från servern.
Kommentar
Jag hoppas att jag inte yrar helt i denna artikeln och skulle det vara så att jag gör det så får ni gärna fixa det. Var tvungen att slå ett mellanslag mellan < och HTML annars visades det inte.
Malte:
Upplevde samma sak. Fixade det genom att sätta ett mellanslag före <HTML>.