PHP将页面生成的标题放入

时间:2010-09-16 18:29:34

标签: php metadata title

我们在网站的所有网页上都包含一个header.php文件。因此,我们可以在header.php文件中放置一个标题,该文件将应用于整个网站,或者在每个页面中都有一个自定义标题,以便更具描述性。

问题在于,在执行此操作时,标题将位于head标记之外(保留在header.php文件中)并标记为无效。

我们可以使用某种函数在页面中定义一个变量($ pageTitle),它将显示在head标签中吗?

感谢。

4 个答案:

答案 0 :(得分:5)

实际上它应该是这样的

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 :(得分:1)

嗯.....

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

修改

然后在你的header.php

<head>
    <title><?php echo $pageTitle; ?> </title>
</head>

答案 2 :(得分:1)

看起来你想要在某些页面上使用动态标题?

<?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>

答案 3 :(得分:0)

我看到它的方式,你仍然可以在标题中完成所有这些工作:

<?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。