Beh l'idea di base e' che la tua applicazione e' sostanzialmente composta da due parti: l'elaborazione dei dati e la loro visualizzazione tramite output HTML per il browser. La naturale separazione tra queste due fasi ha portato alla realizzazione ed all'utilizzo di strumenti come framework MVC e template engine. Credo che anche imparando sia importante tenere separato il codice che elabora informazioni dal markup che genera l'output.
Esempio:
Codice PHP:
<?php
$today = date('d/m/Y', time()); // data odierna
$news = ... // array creato tramite interrogazione del database
// contenente un elenco di news
// ogni altra necessaria elaborazione e creazione di variabili
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Notizie del <?php echo $today; ?></title>
</head>
<body>
<table>
<?php foreach ($news as $line): ?>
<tr><td><?php echo $line; ?></td></tr>
<?php endforeach; ?>
</table>
</body>
</html>
questo e' un esempio semplicissimo, ma la struttura e' questa.