Как инклюдить один файл в другой, при этом не нарушая стрктру документа?

Frutella

Новичок
Подскажите пожалуйста, как справиться со следующей проблемой:
Имеется файл 1.php
Файл 1.php инклюдит (include), файл 2.php.
В файле 1.php имеются теги <title></title>, потом идет небольшой html шаблон, потом инклюдится файл 2.php.
В файле 2.php генерируется определенное название, его необходимо поместить в тег <title></title> файла 1.php.
Название конечно можно вставить с помощью <title><?php echo $name;?></title>, но при этом нужно инклюдить файл до тега <title></title>, а при этом отображение всей страницы "ломается".
Хотел сделать эту вставку с помощью javascript, но поисковики не распознают этот title... Может быть есть возможность инклюдить файл до тега <title></title>, что бы была возможность вставить необходимые параметры в файл 1.php, но при этом весть текст, который генерирует файл 2.php, отображался на старом месте?
 

Frutella

Новичок
Простой инклюд мне не нужен... Нужно что бы инклюдный файл подключался в самом начале, но отображался к примеру в середине страницы. Внизу написан код, он конечно не правильный, но думаю смысл того, что я хочу сделать, будет понятен.
PHP:
<?php
$str ="файл"; 
?>
<html>
<title><?php echo $name;?></title>

текст

<?php
echo $str; 
?>
 

Фанат

oncle terrible
Команда форума
нужен-нужен.
надо просто разобраться, в каком порядке инклюдить, и что.
 

С.

Продвинутый новичок
1.php
PHP:
<?php
include('2.php'); 
?>
<html>
<title><?php echo $name;?></title>

текст

<?php
echo $str; 
?>
2.php
PHP:
<?php
$str ="файл"; 
?>
 

Frutella

Новичок
нужен-нужен.
надо просто разобраться, в каком порядке инклюдить, и что.
Если взять например код:
PHP:
<?php include "2.php";?>
<html>
<title><?php echo $name;?></title>
текст
</html>
то тайтл будет заполнен названием, но при этом там же отобразится и описание, которое должно быть в середине страницы.
Если взять код:
PHP:
<html>
<title><?php echo $name;?></title>
текст
<?php include "2.php";?>
</html>
то тайтл естественно не заполнится названием, но страница будет отображаться так, как мне надо (но к сожалению без тайтла)
 

Frutella

Новичок
2.php
PHP:
<?php
$str ="файл"; 
?>
Но в файле 2.php находится php код, поэтому данный вариант не подходит, т.к $str обработает только html
ты по ссылке ходил?
Ходил, шаблон есть, который в текущем виде не выведет title, а в переделанном виде выведет весь файл 2.php вверху страницы.
 

Фанат

oncle terrible
Команда форума
об этом и речь. надо переделать шаблон правильно.
отделив получение данных от отображения

2.php надо разделить на 2 части.
одну сделать основной, в которую инклюдится 1.php
а вторую - чисто шаблоном
 

Frutella

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

2.php надо разделить на 2 части.
одну сделать основной, в которую инклюдится 1.php
а вторую - чисто шаблоном
Может быть есть способ полегче, к примеру что бы файл инклюдился в начале страницы, но выводился в середине? Или что то вроде замены title из текста полученной страницы. Как например код, для замены title в html странице:
PHP:
<?php
$str ='<html>

<head>

<title></title>
</head>


<body>
<h1>Текст нужный в тайтле.</h1>
<p>Какой-то, неважный нам, текст.</p>
</body>

</html>';

preg_match("|<h1>(.*)</h1>|imsU", $str, $title);
$str = str_replace('<title></title>', '<title>' . strip_tags($title[0]) . '</title>', $str);
print $str;
?>
 

Фанат

oncle terrible
Команда форума
ты не понимаешь.
Я тебе не советую усложнять твой код. Я тебе объясняю, как сделать правильно.

разделять получение и отображение данных надо в любом случае. Это как таблица умножения.
Не надо искать, как "полегче" получить из дважды два - пять. Надо получить 4.
Ты пока многого не понимаешь, и для тебя оба способа одинаковы, только второй "сложнее".
Хотя на самом деле они не одинаковые. У тебя - неправильный. Его надо исправлять. Не ради несчастного title, а потому что делать надо по-человечески.
понятно?
 

Фанат

oncle terrible
Команда форума
тем более, что ничего сложного в предложенном мной способе нет.
 
Сверху