PHP index.php包括结构

时间:2013-07-03 15:15:03

标签: php

我需要帮助。在我的网站上,我使用URL参数来决定在页面上包含哪些其他PHP文件。我的第一个问题是:index.php应该包含什么以及包含的PHP文件应该包含哪些内容?

在互联网上,我找到了说明,为index.php建议了这个结构:

<html>
    <head>
        <?php include 'header.php'; ?>
    </head>
    <body>
        <?php include 'menu.php'; ?>
        <?php include 'content.php'; /* Including page based on the parameters in the url */ ?>
    </body>
</html>

使用此结构,如何根据<head>中的内容更改content.php部分中的数据?例如,对于index.php?option=article&id_article=1,我将包含article.php并显示ID为1的文章。然后,如何更改<title><meta&gt;等内容在包含文章之前写<head>的时候?

谢谢!

3 个答案:

答案 0 :(得分:1)

一个有点丑陋但可行的选项不是拥有header.php echo而只需设置$title$meta[]等变量。而不是让echo.art中的article.php返回一个像$html这样的变量。同样在article.php中,您可以覆盖header.php中设置的任何变量。然后你可以像这样构建你的index.php:

<?php include 'header.php'; ?>
<?php include 'article.php'; ?>
<html>
<head>
    <?php echo $title ?>
</ head>
<body>
<?php include 'menu.php'; ?>
<?php echo $html ?>
</ body>
</ html>

或者您可以查看ob_start()ob_flush()等...

答案 1 :(得分:0)

为了尽可能简单,你可以让你的标题成为一个函数,然后在别处调用函数......

示例(未经测试):

function drawHeader($title, $desc = "", $keywords = "", $extra = "") {
  ?>
  <head>
    <title><?php echo $title; ?></title>
    <meta name="description" content="<?php echo $desc; ?>">
    <meta name="keywords" content="<?php echo $keywords; ?>">
    <link rel="stylesheet" type="text/css" href="path/to/my.css">
    <?php echo $extra; ?>
  </head>
  <?php
}

上述目标是,你可以轻松快速地做一些像......

<!DOCTYPE html>
<html>
<?php drawHeader("Home", "Some description", "Some, keywords, here"); ?>
<body>
  <h1>Hello, world</h1>
  <?php drawFooter(); // maybe a footer of some type? ?>
</body>
</html>

或者您可以在调用包含文件之前设置变量...并且在包含的文件中只需在适当的位置回显这些值。

有很多方法可以做到这一点,许多标准和最佳实践,框架,模板系统,使用输出缓冲的占位符等等。

答案 2 :(得分:0)

首先,您找到的说明无需学习

作为第二个获取文件article.php

的内容

使用网址index.php?option=article&id_article=1

您需要使用$_GET['id_article']

示例:

$page = $_GET {'id_article'};
if (isset($page)) {
$url = $page.".php";
    if (file_exists($url)) {
        include $url;
    }

您可以使用数据库存储文章,然后使用

查询
if ($_REQUEST['id_article'] == $page) {
    $querythearticle = mysql_query("select tablename from database_name where id_article='$page'");

}