PDA

Просмотр полной версии : Вопросы по пхп + хтмл


ruzzer
25.11.2008, 22:29
Добрый вечер. Возник такой вопрос. нужно сделать чтобы <title> <?php echo $title; ?></title> менялось динамически, но переменная $title находится в php файле, который инклудится ниже тэга <title>. Как сделать чтобы все заработало как надо и тег заголовок страницы менялся?

rushter
25.11.2008, 22:32
не совсем понял тебя..
echo "<title>$title</title>"
mm ?

ruzzer
25.11.2008, 22:36
не совсем понял тебя..
echo "<title>$title</title>"
mm ?

действительно не правильно понял)) Проблема в том что переменная $title ниже в коде чем тег <title>

rushter
25.11.2008, 22:38
код в студию...
то что она ниже это нечего не меняет...

ruzzer
25.11.2008, 22:45
Код html

<html>
<title>
<?php echo $title; ?>
</title>
<body>
<?php
include('page.php');
?>
</body>
</html>


код page.php


<?php
$title = 'page.php';
echo "трали вали? бла бла-бла. Тут типа много текста";
?>


Допустим так.=)

FeoЩту
25.11.2008, 23:06
<?
$title = 'page.php';
?>
<html>
<title><?php echo $title; ?></title>
<body>
<?php
include('page.php');
?>
</body>
</html>

NOmeR1
25.11.2008, 23:07
В этом случае можно сделать шаблон, либо внести текст в переменную и уже с помощью инклуда использовать в другом скрипте.
page.php
<?php
$title = 'page.php';
$text = "трали вали? бла бла-бла. Тут типа много текста";
?>
index.php
<?php
require('page.php');
?>
<html>
<title><?php echo $title; ?></title>
<body>
<?php echo $text; ?>
</body>
</html>

ruzzer
25.11.2008, 23:17
эх, в общем вместо

echo "трали вали? бла бла-бла. Тут типа много текста";

Идет длинный код, который в переменную не занести, а на счет шаблона надо подумать))

Gifts
25.11.2008, 23:26
ruzzer А так?
<?php
ob_start();
include('page.php');
$out=ob_get_contents();
echo "<html>
<title>
$title
</title>
<body>
$out
</body>
</html>";

ruzzer
25.11.2008, 23:52
Всем конечно спасибо, но все оказалось гораздо проще
код хтмл

<html>
<body>
<?php
include('page.php');
?>
</body>
</html>


Код page.php

<?php
$title = 'page.php';
echo "<title>$title</title>";
echo "трали вали? бла бла-бла. Тут типа много текста";
?>

Из хтмл надо было убрать <title> и написать его в page.php )))

Solker
26.11.2008, 01:50
По твоему коду получается, что ты <title> суешь после <body>.
Правила гласят, <title> должно находится в <head>

Не понимаю, если тебе подходит твой последний вариант, то почему не подходит вариант от NOmeR1. Они идентичны, только в отличии от твоего у него правильный.

Neoveneficus
26.11.2008, 02:34
Эх. Логика и оформление (дизайн, верстка) должны быть отдельно. Если есть время, присмотрись к smarty-шаблонам.
www.smarty.net

P.S. А title должен быть в head...

[x26]VOLAND
26.11.2008, 03:15
Эх. Логика и оформление (дизайн, верстка) должны быть отдельно.Может ты имел ввиду что бизнес-логика и логика отображения должны быть отдельно? ;)

Если есть время, присмотрись к smarty-шаблонам.В принципе, указание на какой-либо конкретный шаблонизатор в данной теме не уместно. Автору надо в общем изучить принцип шаблонов. А может ему захочется использовать нативный PHP? ;)
Ещё не помешало бы почитать про MVC...
У ТС сразу отпадёт необходимость вот в таких вот извращениях...

MuXaJIbI4
26.11.2008, 11:56
Зачем смешивать серверную логику и отображение информации?

GuD-ok
26.11.2008, 12:18
Зачем смешивать серверную логику и отображение информации? +1


А вообще всем курить AJAX.