|
|
|
| Такая вот проблемка:
Есть файл 1.tpl:
<html>
<head>
<title>{Заголовок}</title>
</head>
<body>
{БЛОК 1}<br>
{БЛОК 2}<br>
{БЛОК 33}<br>
{БЛОК 1}
</body>
</html>
|
Есть 3 таблицы : news,articles и pages (пусть в каждой будет по 1 записи).
News (n_id, n_name,n_announce)
Articles (a_id, a_name, a_announce)
Pages (p_id, title)
Допустим пользователь выбрал, что
{БЛОК 1} - news
{БЛОК 2} - articles
{БЛОК 33} - articles
Тогда скрипт index.php открывает этот самый 1.tpl....
И дальше нужно, чтобы скрипт {ЗАГОЛОВОК} заменил на
<?
$sql = "SELECT FROM pages WHERE p_id=1";
$res = @mysql_query($sql);
$row = $mysql_fetch_array ($res);
echo $row['title'];
?>
|
Блок-1 заменил на
<?
$sql = "SELECT FROM news WHERE n_id=1";
$res = @mysql_query($sql);
$row = $mysql_fetch_array ($res);
echo $row['n_name'];
echo"<br>";
echo $row['n_announce'];
?>
|
Блок 2,33 - заменил на
<?
$sql = "SELECT FROM articles WHERE a_id=1";
$res = @mysql_query($sql);
$row = $mysql_fetch_array ($res);
echo $row['a_name'];
echo "<br>";
echo $row['a_announce'];
?>
|
И все это дело отобразил на экране, только уже вместо {Заголовок}, {БЛОК-1,2,33....} отобразил данные из sql запросов.
Как это сделать? Помогите плиз! | |
|
|
|
|
|
|
|
для: off
(28.08.2005 в 11:53)
| | А скрипт index.php открывает файл как при помощи файловых функций? Т.е. читает содержимое файла или при помощи include? | |
|
|
|
|
|
|
|
для: cheops
(28.08.2005 в 11:58)
| | Оперативно работаете :) (спасибо за это!) Можно и через инклуд. Я вобще-то думал попробовать с fopen() | |
|
|
|
|
|
|
|
для: off
(28.08.2005 в 12:00)
| | Если через fopen(), то следует извлечь содержимое файла 1.tpl
<?php
$fd = fopen("1.tpl", "r");
$content = fread($fd,filesize("1.tpl"));
fclose($fd);
?>
|
А затем заменить содержимое файла $content при помощи строковых функций
<?
$content = str_replace('{Заголовок}',$title,$content);
$content = str_replace('{БЛОК 1}',$n_announce,$content);
$content = str_replace('{БЛОК 2}',$a_announce,$content);
$content = str_replace('{БЛОК 33}',$a_announce,$content);
?>
|
После чего вывести исправленное содержимое в окно браузера
| |
|
|
|
|
|
|
|
для: cheops
(28.08.2005 в 12:10)
| | Спасибо! Будем пробовать... | |
|
|
|
|
|
|
|
для: off
(28.08.2005 в 12:14)
| | Еще возникла одна проблемка.
Есть файл index.html
<html>
<head>
<title>Заголовок</title>
</head>
<body>
допустим <?$action=2?>
{БЛОК-1}<br>
</body>
</html>
|
есть файл 2.inc
<?
$sql = "SELECT * FROM c_news";
$res = mysql_query($sql);
switch ($action) {
case "1":
while ($row_news = mysql_fetch_array($res)){
echo "<b>".$row_news['news_name']."</b><br>";
echo"<br>";
echo $row_news['news_announce'];
echo"<br>";
}
break;
case "2":
while ($row_news = mysql_fetch_array($res)){
echo "<b>".$row_news['news_name']."</b><br>";
echo"<br>";
echo $row_news['news_announce'];
echo"<br>";
}
break;
}
?>
|
и есть файл index.php
<?
$file = fopen("index.html","r");
$index = fread($file,filesize("index.html"));
fclose($file);
echo $index;
?>
|
При выполнении кода index.php выводиться только содержимое файла Index.html.
Как сделать, чтобы при выводе содержимого файла index.html в том месте где написано {Блок-1} программа бы заменяла эту надпись {Блок-1} на результат выполнения кода из фала 2.inc ? | |
|
|
|
|
|
|
|
для: off
(13.09.2005 в 23:36)
| | Для этого необходимо помещать содержимое страниц в буффер и замещать шаблон в содержимом буфере в конце страницы. Подробности в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=148. | |
|
|
|