如何在包含header.php后更改页面标题?

2022-09-03 00:00:00 title 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;
?>

相关文章