我一直在使用标题为网站创建模板。很简单,调试也很方便。
我现在面临将 head BUT 与自定义页面标题一起使用的问题。如果这是我的header.php >
<html>
<head>
<title> My Site : ??? </html>
</head>
<body>
</body>
</html>
我需要 ???为每一页更换。
这可能吗?如果是这样,怎么做?谢谢你。:)
不了解您的文件包含方案的更多信息,最简单的方法是:
page2.php
<?php
$pageTitle = 'Page 2';
include 'header.php';
?>
<div>My content</div>
<?php include 'footer.php'; ?>
头文件.php
<html>
<head>
<title> My Site : <?php echo $pageTitle ?> </title>
</head>
<body>
页脚.php
</body>
</html>
webbiedave 的答案非常好,但从长远来看,您应该真正学会使用体面的模板语言(Smarty、Twig)或拥有自己模板的 PHP 框架。Kohana 和 Codeigniter 都很容易上手。
如果我在包含标题之前添加一些代码,会有帮助吗?
<?php
$currentPage = "Random Page Title";
include "header.php";
?>
然后使用 header.php 中的值打印页面标题?
您可以查询数据库以获取页面标题,然后使用 php 打印它:)
编辑:
回顾问题,取决于您的网站设计方式,这可能不是最简单的解决方案。但是,如果您已经在使用某种 ID 系统,这应该很容易。
更正了 Webbiedave 的 header.php 条目中的 1 个小错误
</html> should be </title>
<html>
<head>
<title> My Site : <?php echo $pageTitle ?> </title>
</head>
<body>
你也可以使用这样的东西:
如果你将你的 php 文件名与你的页面标题结合起来
例如,您可以使用explode 或str replace 使替换逗号或下划线更加用户友好。
<?php
echo basename($_SERVER['REQUEST_URI']);
?>
或者
<?php
// my_page_title.php
$var=basename($_SERVER['REQUEST_URI']);
$pagetitle=str_replace("_"," ",$var);
// my page title
?>
<title> My Site : <?php echo $pagetitle; ?> </title>
是的,它肯定会有所帮助。但是您需要进行一些自定义。
首先,如果要从数据库查询/获取数据,请确保连接到数据库。为此,请在脚本的最开始包含“config.php”页面,其中将显示您的数据库连接逻辑。
然后,编写查询以从该数据库中获取数据,并将该值分配给所需的变量,以便在标题页中使用它。
最后,包括您的“header.php”页面。
对于“config.php”页面:-
数据库连接的逻辑,例如使用“mysql_connect()”和“mysql_select_db()”函数。
对于“custom.php”页面:-
<?php
include "config.php";
$sql = "SELECT pageTitle FROM db_table WHERE condition = 'something'";
$sql_exe = mysql_query($sql) or die("Error in Fetching Page Title");
if( mysql_num_rows($sql_exe) ) {
$currentPage = mysql_result($sql_exe, 0, 0);
}
else {
$currentPage = "Random Page Title";
}
mysql_free_result($sql_exe);
include "header.php";
?>
此外,如果您愿意,您可以随时使用某些类进行 mysql 连接和查询,以获取数据。但这就是它始终起作用的方式。
您可以调用 javascript 动态更改页面标题,如果您有一个主文件 index.php 调用所有其他包含,这是一个更好的解决方案