Варианты выдачи страниц на php

<?php
/* 
* Варианты выдачи страниц на php
* автор: nc_soft
* 26.02.08
*/

//для начала заголовок
header('Content-type: application/vnd.wap.xhtml+xml;charset=utf-8');

//далее могут быть варианты

//вариант 1, всё через echo или принт
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">';
echo '<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<p>Ваш ip: '.$_SERVER['REMOTE_ADDR'].'</p></body></html>';
/*вот такой вариант, на мой взгляд самый худший :)*/

//вариант 2, непосредственный вывод в браузер
//это обычно требуется через echo, потому что если включены short tags могут быть ошибки
echo '<?xml version="1.0" encoding="UTF-8"?>';
//далее закрываем php и выводим просто html код
?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<p>Ваш ip: <?=$_SERVER['REMOTE_ADDR'];?></p>
</body>
</html>
<?php

/*
очень хороший вариант, 
php код вкрапливается в html разметку, вроде бы идеальный способ,
но не годится для работы дизайнера, дизайнеру может быть сложно понять что к чему.
Для этого придумали ШАБЛОНЫ, вот пример простейшего:
Создаем файл шаблона, например index.tpl следующего содержания

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<p>Ваш ip: {{IP}}</p>
</body>
</html>

для дизайнера просто идеально, никакого php нет и в помине.
далее выводим шаблон
*/

echo strtr(file_get_contents('index.tpl'),array('{{IP}}'=>$_SERVER['REMOTE_ADDR']));

/*
как видите мы просто заменили в шаблоне {{IP}} на $_SERVER['REMOTE_ADDR'],
создается массив замены, а не строка, потому что замен может быть несколько.
Преимущества этого способа в том, что в шаблоне нет php кода, а в скрипте нет html
*/

?>