如何在 body 标签内嵌入不同页面的一个页面模板中设置动态标题 - PHP

How to set dynamic titles in one page template embedding different pages inside the body tag - PHP

根据单页模板结构,只有一个名为 index.php 的文件使用 PHP 函数 include_once() 在 body 标签内针对查询字符串嵌入页面$_GET['page']

<?php $page = $_GET['page']; ?>
<html>
   <head>
      <title>
         <!-- title needs to update according to page here -->
      </title>
   </head>
   <body>
      <?php  require_once MC_ROOT.'/pages/'.$page.'.php'; // page content goes here like: <div> [CONTENT], <h1> [PRODUCT TITLE] </h1> </div> etc... ?>
   </body>
</html>

如何在每个页面之前的 <title></title> 标签内设置动态标题?页面应该是 home, product, contact, about 等。请提出任何最佳做法。谢谢

您可以包含一个 title-page 映射:

mapping.php

$mapping = [
 'home' => 'Welcome on my homepage',
 'product' => ['242' => 'My fidget Spinner'] 
];

$title = '';
if(isset($_GET['page'])){
 if(isset($mapping[$_GET['page']])){
   $title = $mapping[$_GET['page']];
 }
}

if(isset($_GET['page']) && isset($_GET['id'])){
 if(isset($mapping[$_GET['page']][$_GET['id']])){
   $title = $mapping[$_GET['page']][$_GET['id']];
 }
}

你可以使用pars_url(这个函数解析一个URL)

考试 如果你这样称呼

$url = "http://www.ibm.com/product?id=1";
echo parse_url($url, PHP_URL_PATH);
////echo product /////

$url = 'http://www.ibm.com/product/il.php?id=value';
$var  = parse_url($url, PHP_URL_PATH);
$var  = explode('/', $url);
echo $var[3];
///echo product////

$url = 'http://www.ibm.com/aboutUs.php';
$var  = parse_url($url, PHP_URL_PATH);
$var  = explode('/', $url);
$var = str_replace(".php","",$var[3]);
echo $var;
///echo aboutUs////

你应该使用 ob_start :

ob_start();
$header=MC_ROOT.'/pages/'.$page.'.php';
include($header);
$buffer=ob_get_contents();
ob_end_clean();

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