PHP для размещения сгенерированного страницы заголовка в <head> - PullRequest
3 голосов
/ 16 сентября 2010

Мы включаем файл header.php на все страницы нашего сайта. Таким образом, мы можем либо поместить один заголовок в файл header.php, который будет применен ко всему сайту, либо иметь собственный заголовок на каждой странице для большей наглядности.

Проблема заключается в том, что при этом заголовок будет находиться вне тегов заголовка (которые остаются в файле header.php) и помечается как недействительный.

Есть ли какая-то функция, которую мы можем использовать для определения переменной ($ pageTitle) на странице, которая будет отображаться в теге head?

Спасибо.

Ответы [ 4 ]

5 голосов
/ 16 сентября 2010

На самом деле так и должно быть

news.php:

<?
include "config.php"; //connect to database HERE.
$data = getdbdata("SELECT * FROM news where id = %d",$_GET['id']);
$page_title = $data['title'];
$body = nl2br($data['body']);

$tpl_file = "tpl.news.php";
include "template.php";
?>

template.php:

<html>
<head>
<title><?=$page_title?></title>
</head>
<body>
<? include $tpl_file ?>
</body>

tpl.news.php

<h1><?=$page_title?></h1>
<?=$body?>

просто и ясно

1 голос
/ 16 сентября 2010

Похоже, вы хотите динамический заголовок на некоторых страницах?

<?php
$defaultPageTitle='Default Title'; //Default title
include('header.php');
?>

<?php
/* You would define $newPageTitle here if necessary
 (i.e. use $_SERVER['REQUEST_URI'] to get the URL
 and check a database for the $newPageTitle */
?>
<head>
<?php
if(isset($newPageTitle)){echo '<title>'.$newPageTitle.'</title>';}
else{echo '<title>'.$defaultPageTitle.'</title>';}
?>
</head>
1 голос
/ 16 сентября 2010

Мммм .....

<?php 
$pageTitle = "Test";
include('header.php');
?>

EDIT

Тогда в вашем header.php

<head>
    <title><?php echo $pageTitle; ?> </title>
</head>
0 голосов
/ 16 сентября 2010

Как я понимаю, вы все еще можете выполнять всю эту работу в своем заголовке:

<?php
include(...your config/connect file...);
mysql_query(... get page variables ...);
$pageTitle = stripslashes($titlefromDB);
?>
<html><head><title><?php echo $pageTitle; ?></head>

Таким образом, вы завершаете header.php.Теперь включите это на каждой странице, которую вы хотите использовать, и следуйте вашему <body></body></html>.

Всего одна идея, но в любом случае, если вы обойдете это, вам сначала нужно будет подключиться к вашей БД,проверьте, существует ли страница, если это так, установите заголовок как переменную, а затем приступайте к созданию html.

...