动态标题最好的方式?

时间:2010-01-08 15:15:59

标签: php

的header.php

<?php

$conn = mysql_connect('localhost', '-', '-');
@mysql_select_db('accmaker', $conn) or die("Unable to select database");

?>

<html>
<head>
<title>Mysite.com - <?php isset($pageTitle) ? $pageTitle : 'Home'; ?></title>
</head>
<body>

profile.php

require 'header.php';

$q = mysql_query("SELECT * FROM users WHERE username = '$username'");

$r = mysql_fetch_assoc($q);

$pageTitle = "Profile of $r[username]";

我想你明白我想要什么

我不能在查询后包含header.php,因为我不会连接到mysql

除了在每个页面上都有连接片段之外,你建议吗

2 个答案:

答案 0 :(得分:4)

我有什么建议?像Kohana这样的MVC(模型 - 视图 - 控制器)框架。如果您不想走这条路线,请将您的连接断开到自己的文件中:

<?php

  # connect
  require_once("connection.php");

  # load page data array
  require_once("page-data.php");

?>
...
<title><?php print $page["title"]; ?></title>

请注意我如何拥有$page数据数组。这在以后调试时很有用,而不是有几个独立的变量。通过一系列页面数据,我可以快速查看为任何给定页面布置的所有信息:

print "<pre>";
print_r($page);
print "</pre>";

确定您的标题应该在page-data.php内完成,而不是在您的网页上:

$config["site_name"]   = "Bob's Shoe Mart";
$config["admin_email"] = "bob@shoemart.com";

/* query to get $row['title'] */

$page["title"] = (!empty($row["title"])) ? $row["title"] : $config["site_name"] ;

答案 1 :(得分:0)

不确定“最佳”解决方案,但我们目前包含多个文件。我们有“utilities.php”文件连接到数据库并提供一些不错的功能。然后我们设置我们的页面标题,然后我们包括“top.php”这是布局部分。除了带有一点PHP的HTML用于显示目的之外它没有任何东西。看起来像这样:

include "utilities.php";
$pageTitle = "Welcome";

include "top.php";