Dire che PHP comprende HTML non è esatto...

PHP interpreta lato server il codice che hai scritto e restituisce i dati al browser per la visualizzazione. Se nello script dici a php di stampare (tramite il comando echo o print) tag html, questi vengono interpretati e visualizzati...

ti faccio un esempio, immagina che questa sia la struttura della tua pagina web

codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>

<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
</body>
</html>
tramite php inserisci un titolo che hai estratto dal database:

Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php echo "<h1>$titolo</h1>";?>
</body>
</html>
fingendo che $titolo contenga un dato preso dal db...

Così hai stampato html tramite php!

fammi sapere se quello che ti ho detto è chiaro!
buono studio!