Biensur que non !
Il va te falloir faire la difference entre (X)HTML -un langage a balises- et PHP -un langage de script qui sert a créer des documents de toutes sortes y compris (X)HTML-
De ce fait PHP est independant du document qu'il genere, les instructions PHP n'ont pas a etre placées entre certaines balises (X)HTML dans ton exemple. Ca n'a tout simplement aucun sens !!
Pour ce qui est de header je te conseille de lire la doc : http://fr.php.net/manual/fr/function.header.php
Il faut principalement retenir que lorsque le serveur envoie des données a ton navigateur il va tout d'abord lui envoyer un en-tete pour lui preciser quel est le type des donnees qu'il va recevoir. En fonction du type de données qu'il va recevoir, le navigateur sait ce qu'il doit en faire : si c'est une image le comportement ne sera pas le meme que si c'est une animation flash ou bien un document (X)HTML. En effet, le document (X)HTML sera par exemple "parsé" pour construire graphiquement la page ... comportement qui serait tout a fait mal venu d'avoir avec les données d'une image tu le concois !
Maintenant que tu comprends un peux mieux le role d'un en-tete tu devrais comprendre que l'en-tete doit etre la premiere donnée a envoyer au navigateur client.
Concretement qu'est ce que cela signifie ? Si ton script PHP a pour but de générer du code (X)HTML alors il va falloir que header envoie l'en-tete avant toute données HTML.