动态标题问题

时间:2009-12-28 21:33:03

标签: php include switch-statement

如何通过此设置创建动态(我认为这个词)标题?例如,当我查看个人资料时,我希望它在<title>内查看USERNAME'的个人资料。如果不在每个单独的页面上放置html顶部,我怎么能做到这一点?

非常感谢。

请不要开始谈论mvc,我不需要那个

<html>
<head>
<title>KALASHNIKOV - $??</title>    
</head>
<body>

<?php

switch($area) {

// The default page
default:
include_once('pages/main.php');
break;  

// This is for registering an account
case 'register':
include_once('pages/register.php');
break;

// This is to log in!! (obviously)
case 'login':       
include_once('pages/login.php');
break;

// This is for logging out
case 'logout':
logout();
break;

}

?>

</body>
</html>

5 个答案:

答案 0 :(得分:2)

好吧,如果你不想把HTML放在每个页面的顶部,我假设你把它放在一个单独的文件中,比如header.php,它应该是这样的:

<html>
<head>
<title><?= $page_title ?> - My Site</title>
</head>

然后在您的每个网页上,您只需在设置之前设置$page_title,例如

$page_title = 'My Page';
include 'header.php'

无论如何,这是解决问题的一种方式。

答案 1 :(得分:1)

每个子页面应该执行以下操作:

<?php require('header.php') ?>

其中header.php有类似的内容:

<title>KALASHNIKOV - <?php echo $GLOBALS['pageTitle'] ?></title>

或使用支持模板和代码段的zend framework

答案 2 :(得分:0)

我会在你的php文件的顶部创建一个这样的数组(可能太复杂但是因为你的网站可能会变得更大,所以更容易解决它):

<?php
error_reporting(E_ALL); // that's always good

$sites = array(
    'default' => array(
        'pages/main.php',
        'Main title'
    ),
    'register' => array(
        'pages/register.php',
        'Register'
    ),
    'login' => arary(
        'pages/login.php',
        'Login'
    }
);

$title = array_key_exists($area,$sites) ? $sites[$area][1] : $sites['default'][1];
?>
<html>
<head>
<title>KALASHNIKOV - <?=$title?></title>    
</head>
<body>
<?php
if (array_key_exists($area,$sites))
    require $sites[$area][0];
else
    require $sites['default'][1];
?>

答案 3 :(得分:0)

将它放在页面的任何位置:

<script language="JavaScript">document.title ="KALASHNIKOV - blablabla";</script>

答案 4 :(得分:0)

看起来您可以从额外的图层中受益。您可以使用switch来设置内容和标题(以及您可能需要的任何其他内容),而不是让您的内容页面使用switch来包含内容。< / p>

$title = "KALASHNIKOV - "
$include_page = "content.php"
$content_page = "pages/404.php";
switch($area) {

// The default page
default:
    $content_page = 'pages/main.php';
    break;  

// This is for registering an account
case 'register':
    $content_page = 'pages/register.php';
    break;

// This is to log in!! (obviously)
case 'login':       
    $content_page = 'pages/login.php';
    break;

// This is for logging out
case 'logout':
    $include_page = 'logout.php';
    break;

}

require_once $include_page;

content.php:

<html>
<head>
<title><?php echo $title; ?></title>    
</head>
<body>

<?php require_once $content_page; ?>

</body>
</html>

然后logout.php将调用logout()并在那里做任何事情,我不知道你是如何处理它的。

这种方法也更好地支持逻辑与表示的分离,这总是一个好主意。