13

我一直在使用标题为网站创建模板。很简单,调试也很方便。

我现在面临将 head BUT 与自定义页面标题一起使用的问题。如果这是我的header.php >

<html>
    <head>
        <title> My Site : ??? </html>
    </head>
<body>


</body>
</html>

我需要 ???为每一页更换。

这可能吗?如果是这样,怎么做?谢谢你。:)

4

8 回答 8

23

不了解您的文件包含方案的更多信息,最简单的方法是:

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>
于 2010-04-28T19:01:42.867 回答
2

webbiedave 的答案非常好,但从长远来看,您应该真正学会使用体面的模板语言(Smarty、Twig)或拥有自己模板的 PHP 框架。Kohana 和 Codeigniter 都很容易上手。

于 2010-04-28T19:20:33.767 回答
1

如果我在包含标题之前添加一些代码,会有帮助吗?

<?php
    $currentPage = "Random Page Title";
    include "header.php";
?>

然后使用 header.php 中的值打印页面标题?

于 2010-04-28T19:04:45.780 回答
0

您可以查询数据库以获取页面标题,然后使用 php 打印它:)

编辑:

回顾问题,取决于您的网站设计方式,这可能不是最简单的解决方案。但是,如果您已经在使用某种 ID 系统,这应该很容易。

于 2010-04-28T19:01:10.530 回答
0

更正了 Webbiedave 的 header.php 条目中的 1 个小错误

</html> should be </title>

<html>
    <head>
        <title> My Site : <?php echo $pageTitle ?> </title>
    </head>
<body>
于 2013-04-10T20:40:58.157 回答
0

你也可以使用这样的东西:

如果你将你的 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>
于 2012-08-15T10:43:18.273 回答
0

是的,它肯定会有所帮助。但是您需要进行一些自定义。

首先,如果要从数据库查询/获取数据,请确保连接到数据库。为此,请在脚本的最开始包含“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 连接和查询,以获取数据。但这就是它始终起作用的方式。

于 2010-05-04T05:54:07.270 回答
0

您可以调用 javascript 动态更改页面标题,如果您有一个主文件 index.php 调用所有其他包含,这是一个更好的解决方案

于 2011-03-31T06:00:21.740 回答