Brug af php i eksternt stylesheet og javascript

Her er noget tekst. Nu skriver jeg "tekst" i en gul boks hvis browseren er IE, og en blå boks hvis det er en Gecko browser (Netscape, Mozilla, Safari). Browserbestemmelsen sker ved hjælp af php i det eksterne stylesheet. Og så skal jeg også teste cursorstilen. Det gør jeg her. Også det sker ved browserbestemmelse med php.

Fordelen ved denne metode er at man kan nøjes med ét stylesheet, frem for forskellige der hver for sig er tilpasset en enkelt browser. Det gør det nemmere at foretage ændringer samlet.

Her tester jeg så scriptet. Det følgende er udskrevet af javascript-filen, hvori php bestemmer udfaldet efter browser. Hvis den angivne browser er korrekt (kun for IE eller Gecko browsere), fungerer det:


Og her er koden:

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>Brug af php i stylesheet og javascript</title>

<?php include ("browserdetect.inc"); ?>
<link rel="stylesheet" type="text/css" href="styles.php" />

</head>

<body>

[tekst...] Nu skriver jeg <span id="browser">"tekst"</span> i en gul boks [...]

[...]

Det gør jeg <span id="blue" onmouseover="this.style.cursor=<?php if ($IE) { ?>'hand'<?php } else if ($Gecko) { ?>'pointer'<?php } ?>;">her.</span>

[...]

<p>
<script type="text/javascript" src="script.php"></script></p>

</body>
</html>

browserdetect.inc

<?php
$browser = $HTTP_USER_AGENT;
$i = 0;
$IE = (eregi('MSIE',$browser))?true:false;
if ($IE) $i = strpos($browser,'MSIE');
$IE5 = ($IE&&intval(substr($browser,$i+5))==5)?true:false;
$IE55down = ($IE&&floatval(substr($browser,$i+5))<5.5)?true:false;
$IE55up = ($IE&&floatval(substr($browser,$i+5))>=5.5&&floatval(substr($browser,$i+5))<=5.9)?true:false;
$IE6 = ($IE&&intval(substr($browser,$i+5))==6)?true:false;
$Gecko = (eregi('Gecko',$browser))?true:false;
?>

styles.php

<?php header("Content-type: text/css"); include("browserdetect.inc"); ?>

body {
	font-family: Verdana, Arial, sans-serif;
	margin-left: 30px;
}
#browser {
	background-color: <?php if ($IE) { ?>#ffcc00; <?php } else if ($Gecko) { ?>#00ccff; <?php } ?>
}
#blue {
	color: blue;
	font-weight: bold;
}

script.php

<?php include ("browserdetect.inc"); ?>

document.write('&ldquo;Dette er ' + <?php if ($IE) { ?>'Internet Explorer&rdquo;'<?php } else if ($Gecko) { ?>'en Gecko browser&rdquo;'<?php } ?>);