Как вытянуть переменную?

Swat

Новичок
Как вытянуть переменную?

У меня есть index.php в который много чего инклудится. Так вопрос в том как вставить значение переменной, которая находится очень далеко, но она инклудится в начале (index.php). Покажу на примере:
PHP:
<html>
<head>
<title><? echo $title; ?></title>
</head>
<body>
<!-- Здесь инклудится контент, потом модули, потом ... и в самом конце задается значение для переменной $title. -->
</body>
</html>
 

Swat

Новичок
Тоесть у меня сайт работает на index.php. А все остальное в него инклудится. Когда инклудится определенная страница в которой указаны $meta, $title, то эти значения должны вставляться в index. Может можно как-нибудь по другому реализовать это действие, например через функцию? Помогите плиз!
 

Swat

Новичок
а можно как нибудь инклудить только title? тоесть создать отдельный файл и внем хранить все заголовки, а потом что бы скрипт выбирал какой из заголовков надо вставить в шаблон?
 

Фанат

oncle terrible
Команда форума
а что за контент? если это просто текст, то зачем его инклудить?
а если это не контент, а скрипт, то почему бы к нему не обращаться напрямую?
 

Swat

Новичок
а что за контент? если это просто текст, то зачем его инклудить?
а если это не контент, а скрипт, то почему бы к нему не обращаться напрямую?
там загружается функция:
PHP:
<? select_module("modules/main","main"); ?>
она выводит содержимое главной страницы. Это когда главная
А потом например надо вывести страницу-1, пользователь кликает на ссылку (index.php?module=pages&id=1) и загружается следующие:
PHP:
<?
if(isset($_GET["id"])) {
if(file_exists("content/pages/".$_GET["id"].".php")) {
include("content/pages/".$_GET["id"].".php");
//Загружает контент (вот здесь переменные title и meta
show_content($meta,$header_page,$content_page);
} else show_error("ID страницы указан не верно!");
} else show_error("Вы не указали ID страницы!");
?>
 

Фанат

oncle terrible
Команда форума
ну так зачем к пейджес пхп обращаться через индекс?
Ты же сам видишь, как это неудобно.
 

Swat

Новичок
мне тогда придется оочень много всего изменять, да и с задуманным не получится ... а так ни как да? И еще:
а можно как нибудь инклудить только title? тоесть создать отдельный файл и внем хранить все заголовки, а потом что бы скрипт выбирал какой из заголовков надо вставить в шаблон?
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
да... Здесь вообще всё надо менять. Применяй MVC-паттерн + шаблоны, и будет тебе счастье! :)
Перемешивание php с html до добра не доведут
 

t3[0one]

Новичок
PHP:
switch( $_GET['varible'] )
                               {
                   case "variant1" : include('variant1.php');break;
                   case "variant2" : include('variant2.php');break;
                   default : include(' default.php');break;
                               }
-~{}~ 23.03.05 20:27:

Автор оригинала: varan
да... Здесь вообще всё надо менять. Применяй MVC-паттерн + шаблоны, и будет тебе счастье! :)
Перемешивание php с html до добра не доведут
smarty rulezzz )
 

t3[0one]

Новичок

Swat

Новичок
круто ... только надо подумать как бы мне заменить это на мой движок ... и какой толк будет...
 

Screjet

Новичок
самый примитивный способ MVC:
PHP:
ob_start();
//<!-- далее весь код, на который потрачена уйма времени, но грошь = ему цена -->
$body = ob_get_contents();
ob_end_clean();
Ну и в самом конце (можно иклюдить из файлика):
<html>
<head>
<title><? echo $title; ?></title>
<?foreach( $meta as $name => $content ){?>
<META NAME="<?=$name?>" CONTENT="<?=$content?>">
<?}?>
</head>
<body>
<?=$body?>
</body>
</html>
 

Фанат

oncle terrible
Команда форума
t3[0one]и как же твой гениальный кеод поможет нашему старадльцу вывести тайтл?
 

Мутник

Новичок
раз уж тут такое извращение с самого начала, то можно сделать примерно следующее:

PHP:
$titles = array(
						"main_1" => "Заголовок для главной страницы ОДИН",
						"main_2" => "Заголовок для второй страницы",
						"text" => "Какой то текстовый раздел",
						"news" => "А тут у нас главные новости",
);

$needed_title = $titles[main_2];
Можно, в принципе и так, только это не особо удобно, но должно работать...

P.S.думаю, это надо использовать совместно с ob_start()
 
Сверху