如何在包含header.php后更改页面标题?
page.php:
<?php
include("header.php");
$title = "TITLE";
?>
header.php:
<title><?php echo $title; ?></title>
我希望我的标题设置在之后,包括头文件。是否可以执行此操作?
解决方案
关于Dainis Abols的回答,以及您关于输出处理的问题
考虑以下事项:
您的header.php将标题标签设置为<title>%TITLE%</title>
;
"%"很重要,因为几乎没有人输入%TITLE%,因此您可以在以后将其用于str_place()。
然后,您可以像这样使用output buffer
<?php
ob_start();
include("header.php");
$buffer=ob_get_contents();
ob_end_clean();
$buffer=str_replace("%TITLE%","NEW TITLE",$buffer);
echo $buffer;
?>
应该可以了。
编辑
我认为Guy's idea效果更好,因为它会在您需要时为您提供默认设置,IE:
- 标题现在为
<title>Backup Title</title>
- 代码现在为:
<?php
ob_start();
include("header.php");
$buffer=ob_get_contents();
ob_end_clean();
$title = "page title";
$buffer = preg_replace('/(<title>)(.*?)(</title>)/i', '$1' . $title . '$3', $buffer);
echo $buffer;
?>
相关文章