我需要帮助。在我的网站上,我使用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>
的时候?
谢谢!
答案 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'");
}