You can use the header() function to sent the content type of the response. You can't force a browser to open the File Download dialog box -- in fact, if the browser knows how to display something inside it, it will. This includes most plain-text output, images, and (depending on your media player settings) songs and video.
look at header():
Simple search on google got me this list o' mime types you can send with an HTTP content-type header: