如何在 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;
根据单页模板结构,只有一个名为 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;