Непонятно, добавляет ли foo() расширение к файлу. По-моему она просто возвращает то же самое, либо main в случае отсутствия переменной. А для include вроде как нужно полное имя файла. Тогда там написисать:
Код:
<?php
function foo ($in) {
if ($in != "") {$out=$in.".php3";}
else {$out="main.php3";} return $out;}?>
Тогда на выходе (для передачи в include) будут получаться строки
news.php3 и подобные.
Или же данные хранятся просто в файлах без расширения? Тут есть кое-какие неясности...
Может просто попробовать запросы типа
http://myserver.ru/?id=news и обрабатывать их как $_GET['id'] ? Или нужно, чтобы одним словом после вопроса?