0

所以我一直在我买的一本 PHP 书中做一些练习,他们建议设计一个标题并将它保存为一个单独的文档,然后当你想在你的页面中使用它时,你只需使用

<?php
   require('header.html');
?>

虽然这节省了大量用于修改每个单独页面的标题的代码,但我希望为不同的页面使用不同的样式表..但我不知道如何,因为当调用 header.html 时,它会自动加载自己的样式表..

是否有类似“IF”语句我可以用来确定我可以使用哪一个?样式表规范必须在<head>

4

2 回答 2

3

好吧,这是一个例子。

index.php将要访问的文件

<?php
    $stylesheets = [
        '/stylesheets/common.css',
        '/stylesheets/themes.css',
    ];
?>
<html>
    <head>
        <?php include("head.php"); ?>
    </head>
</html>

并在head.php

<?php foreach ($stylesheets as $stylesheet): ?>
    <link rel="stylesheet" type="text/css" href="<?= $stylesheet ?>" />
<?php endforeach; ?>

输出应该是这样的:

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="/stylesheets/common.css" />
        <link rel="stylesheet" type="text/css" href="/stylesheets/themes.css" />
    </head>
</html>

为什么?

因为您分配给$stylesheets一个值数组(样式表的 URI)。当您包含文件head.php时,该变量$stylesheets对其可用,因为它是在包含之前声明/分配的。

head.php然后简单地迭代这些值并将它们喷出。通过更改 的值,$stylesheets您可以在结果页面中添加或删除样式表引用。

不过,这充满了问题;没有错误检查等,并且需要更多的工作才能在生产中可靠地使用这样的东西(或者无论如何应该需要更多的工作

于 2013-03-09T17:17:09.363 回答
0

不要包含标题的那部分。这样,您还可以正确地为每个页面添加标题和关键字,即

<html>
<head>
<title Yada yada</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="">
<link href="style/customstyle.css" rel="stylesheet">
<?php require_once('header.html'); ?>

您的网站在这里

然后在你的 header.html 中完成你的标签

<link href="style/style.css" rel="stylesheet">
....
</head>
<body>
<div class....>
 Your Header (topbar /menu etc..
于 2013-03-09T17:17:50.413 回答