If you are just talking about multiple HTML pages which you want to be able to change visually, I would simply use logical and semantically meaningful HTML with liberal use of class and id attributes for the elements, then control the visual presentation with an external CSS stylesheet. Then if you want to change the site's appearance, simply change the stylesheet. (As an example, at www.csszengarden.com all the sample pages use the same HTML; all that differs is the CSS stylesheet and the graphic files called by that stylesheet.)
However, what it sounds like you may really want to do is create a data-driven site. Such a site could use one PHP page for displaying all songs, with the actual content being driven by a URL query string value (e.g.: song.php?song=123). You would then grab that ID via the $_GET array, query your database (or other data source) based on that ID, then output the specific data with the HTML generated by the PHP script.