动态php包含用于不同CSS页面的文件

动态php包含用于不同CSS页面的文件,php,css,include,Php,Css,Include,如果我的网站的每个页面上都列出了我的一些CSS页面,那么它们会相互产生负面影响。目标是将整个head部分删除到header include文件中,以清理页面。我尝试使用php脚本查看服务器的请求URI变量,以检测当前页面,然后在if语句中使用该变量来选择该页面所需的css链接标记。以下是我尝试过的: <? $currentLocation = $_SERVER['REQUEST_URI']; if ($currentLocation == '/index.php' || $currentL

如果我的网站的每个页面上都列出了我的一些CSS页面,那么它们会相互产生负面影响。目标是将整个head部分删除到header include文件中,以清理页面。我尝试使用php脚本查看服务器的请求URI变量,以检测当前页面,然后在if语句中使用该变量来选择该页面所需的css链接标记。以下是我尝试过的:

<?
$currentLocation = $_SERVER['REQUEST_URI'];
if ($currentLocation == '/index.php' || $currentLocation == '/' || $currentLocation == '') 
{
echo '<link href="css/signin.css" rel="stylesheet">';
} elseif ($currentLocation == '/signup.php') {
echo '<link href="css/signin.css" rel="stylesheet">';
} elseif ($currentLocation == '/anotherPage.php') {
echo '<link href="css/anotherPageCSS.css" rel="stylesheet">';
}
?>

这是一个体面的方法吗?你看到里面有错误吗?请告知


我还考虑过将CSS页面分解为一个样式表,并使用id属性作为目标,而不是使用标记选择器。你们推荐什么

这是一种方法。 我建议使用一些字典(PHP中的关联数组)

差不多

<?php
$currentLocation = $_SERVER['REQUEST_URI'];
$styles = [
  "/index.php"   => "first.css",
  "/"            => "first.css",
  "/another.php" => "second.css",
  //...
];

if (in_array($currentLocation, $styles))
{
    $link = "css/" . $styles[$currentLocation];
    echo "<link rel=\"stylesheet\" href=\"$link\"/>
}

?>

这是一种方法。
我建议使用一些字典(PHP中的关联数组)

差不多

<?php
$currentLocation = $_SERVER['REQUEST_URI'];
$styles = [
  "/index.php"   => "first.css",
  "/"            => "first.css",
  "/another.php" => "second.css",
  //...
];

if (in_array($currentLocation, $styles))
{
    $link = "css/" . $styles[$currentLocation];
    echo "<link rel=\"stylesheet\" href=\"$link\"/>
}

?>

这里是一个利用小类的页面键控的基本示例。每当您想为html设置输出时,您都可以选择它应该从哪个页面键生成(这样,您的URL和php文件名就可以更改而不必担心):


类似签出页面的示例用法:

<?php
// checkout.php
require_once(__DIR__.'/include_handler.php');
$htmlincludes = new IncludeHandler('checkout');

// processing code

// html output area
?><html>
<head>
    <link type="text/css" rel="stylesheet" href="/css/global.css" />
    <?PHP echo $htmlincludes->headlinks();?>
</head>
<body></body>
</html><?PHP
?>

下面是一个利用小类的页面键控的基本示例。每当您想为html设置输出时,您都可以选择它应该从哪个页面键生成(这样,您的URL和php文件名就可以更改而不必担心):


类似签出页面的示例用法:

<?php
// checkout.php
require_once(__DIR__.'/include_handler.php');
$htmlincludes = new IncludeHandler('checkout');

// processing code

// html output area
?><html>
<head>
    <link type="text/css" rel="stylesheet" href="/css/global.css" />
    <?PHP echo $htmlincludes->headlinks();?>
</head>
<body></body>
</html><?PHP
?>



这是一种方法。但这可能是一个非常固执己见的话题,因为每个人都有自己喜欢的方式来处理动态CSS包含(甚至构建)的事情。然而,一个完全正确的标记html网站只能使用一个CSS文件。只需要大量的计划和纪律:)你更喜欢用什么方法来实现这一点?我对建议持开放态度,因为我没有经验。我很想让它发挥作用,但我也想比较一下思维过程,以形成自己的观点提前感谢所有帮助我的人。在此期间,我将开始这样做!在基本设置中,我使用页面键(一个基于构建和返回何种页面的定义变量,但我从不使用请求URI),然后在单个全局CSS文件之后添加1或2个额外的CSS文件。这将进入一个html头生成器方法,该方法在生成和输出实际html时调用。这是我如何进行较小设置的基本要点。更大的设置更多地涉及数百个较小的js/css文件,这些文件被塞满并缓存在一起。。。好吧,疯狂的时代。非常有趣。谢谢你的意见。非常感谢,这是一种方法。但这可能是一个非常固执己见的话题,因为每个人都有自己喜欢的方式来处理动态CSS包含(甚至构建)的事情。然而,一个完全正确的标记html网站只能使用一个CSS文件。只需要大量的计划和纪律:)你更喜欢用什么方法来实现这一点?我对建议持开放态度,因为我没有经验。我很想让它发挥作用,但我也想比较一下思维过程,以形成自己的观点提前感谢所有帮助我的人。在此期间,我将开始这样做!在基本设置中,我使用页面键(一个基于构建和返回何种页面的定义变量,但我从不使用请求URI),然后在单个全局CSS文件之后添加1或2个额外的CSS文件。这将进入一个html头生成器方法,该方法在生成和输出实际html时调用。这是我如何进行较小设置的基本要点。更大的设置更多地涉及数百个较小的js/css文件,这些文件被塞满并缓存在一起。。。好吧,疯狂的时代。非常有趣。谢谢你的意见。非常感谢。我非常喜欢你的建议比if声明更具可读性。谢谢。我很喜欢你的建议比if声明更具可读性。谢谢你,非常有趣!谢谢我要试一试。我也添加了.js文件。如果你不需要这些,只需删除相应的垃圾。但是CSS和JS有点联手;)我也倾向于在“另一个文件”中包含这类内容,因此只更新处理程序是一个要扩展的单文件操作。顺便说一下,你也可以把它和网页页眉/页脚包装系统结合起来。我喜欢它。我将在js和css中使用它。再次感谢。非常有趣!谢谢我要试一试。我也添加了.js文件。如果你不需要这些,只需删除相应的垃圾。但是CSS和JS有点联手;)我也倾向于在“另一个文件”中包含这类内容,因此只更新处理程序是一个要扩展的单文件操作。顺便说一下,你也可以把它和网页页眉/页脚包装系统结合起来。我喜欢它。我将在js和css中使用它。再次感谢。