There are varying opinions on this. I think there are two good ways:
-
Use a templating engine like Smarty that completely separates code and presentation.
-
Use your second example, but when mixing PHP into HTML, only output variables. Do all the code logic in one block before outputting anything, or a separate file. Like so:
<?php $content = doSomething(); // complex calculations ?> <html> <body> <?php echo $content; ?> <div id="some_div">Content</div> </body> </html>
Most full-fledged application frameworks bring their own styles of doing this; in that case, it’s usually best to follow the style provided.