PHP Output Block Defining and Best Practices
The first problem i can see and many other's is that your hardcoding output data, why would you hard code output data on within a language that was built for dynamic content creation.

I would suggest that you restructure your class to combine several entites into one, for example, when creating a html web page, i usually is constructed of 5 major compoinants, for isntance:


Page

Head
Body

Header
Main
Footer




Taking this into consideration i would like to make my code so it would act in the same way, create 6 or so classes called:  HTMLPage, HTMLHead, HTMLBody, HTMLBodyHeader, HTMLBodyMain, HTMLBodyFooter

Now each class should be assigned to it's parent, for example:

The Head and Body belong to the Page, and the Header,Main and Fotter belong to the Body, this taken into consideration you should look at the following structure:

/*
 * Create a Page
*/
$Page = new Page("DOCTYPE");

/*
 *Create a Head
*/
$Head = new Head();
$Head-&gt;title = "My Practical Home Page";
$Head-&gt;addScript("http://google.com/example.js");
$Head-&gt;addStyle("http://google.com/example.css");
$Head-&gt;addMeta('blah','..blah..');

/*
 * Create a Body Object
*/
$Body = new Body("charset");
$Body-&gt;layout = new HTMLLayout("some_file_to_specifiy_the_layout");
$Body-&gt;SetContent('LeftBlock.Top','Hello World');

/*
 * Create Footer
*/
$Footer = new Footer('default_footer.php');

/*
 * Add all the segments to the main page!
*/
$Page-&gt;head = $Head;
$Page-&gt;body = $Body;
$Page-&gt;body-&gt;header = $Header;
$Page-&gt;body-&gt;main = "....";
$Page-&gt;body-&gt;footer= $Footer;

/*
 * Send the page to the browser!
*/    
$Page-&gt;Display();


I will leave it down to you to figure out the classes