如何在此结构中添加动态页面标题?

时间:2018-01-11 05:30:01

标签: php dynamic

正如您在下面看到的,我正在检查$_GET['page']以将正确的页面包含到我的index.php中,我喜欢这种结构,但如何将标题等动态数据添加到标题中?在init.php中包含正确的页面之前,包含header.php文件的index.php包含在顶部,因此我不可能只使用变量?

有人可以向我解释其他人是如何做到这一点的吗?

的init.php

//HEADER OPTIONS
header('X-FRAME-OPTIONS: deny', true);
header("X-XSS-Protection: 1; mode=block");
header("x-content-type: nosniff");
ini_set( 'session.cookie_httponly', 1 );

session_start();

 if(!isset($_SESSION['CSRFToken'])){
     //SÆTTTER SESSION TOKEN HVIS DER IKKE ER EN
     $_SESSION['CSRFToken'] = bin2hex(random_bytes(32));
 }

require_once "db.php";
require_once "functions.php";
require_once 'header.php';

的index.php

include_once "includes/init.php";

// CHECKKER OM DER ER EN $_GET
$page = (isset($_GET['page'])) ? "pages/" . $_GET['page'] . '.php' : 'pages/core.php';
// CHECKER OM FILEN EKSISTERE
file_exists($page) ? include_once($page) : include_once "pages/404.php";

include_once "includes/footer.php";

1 个答案:

答案 0 :(得分:1)

您可以使用str_replace将标题标记中的当前文本替换为您想要的任何标题。

因此,您最初可以使用header.php

等占位符在<title>%TITLE%</title>或任何地方设置标题文字

然后在包含正确的文件之后,您可以使用下面的php代码设置标题,使用ob_get_contents来获取此时输出到浏览器的任何内容并使用str_replace替换它,

<?php

    $buffer=ob_get_contents();
    ob_end_clean();

    $buffer=str_replace("%TITLE%","NEW TITLE",$buffer);
    echo $buffer;
?>

如果有帮助或者我能为您提供更多帮助,请告诉我。