$files = glob('news/*.html');
rsort($files);
foreach ($files as $f) {
include $f;
}
This actually does a reverse lexicographical sort (since the file names are strings), but that luckily works in this case since the dates are in highest to lowest magnitude order. More information: rsort.
Note: I'm assuming your dates are formatted like YYYY-MM-DD. If they're formatted without leading zeroes, this solution will not work. You will have to extract the date from each file name, change it to some kind of intermediary type (unix timestamp, or a lexicographically sortable string) and then sort on that. For example '2013-3-1' > '2013-12-1'
is considered true, but '2013-03-01' > '2013-12-01'
is false.