PHP - 动态页面 - 为每个动态页面使用单独的CSS文件

时间:2013-05-22 10:54:56

标签: php css dynamic

是否可以根据您所在的动态页面调用不同的css文件?

例如,如果你从index.php开始 - > 然后单击指向index.php的链接?p = apple

如果您有一个名为index.css的css文件,该文件特定于index.php,那么在index.php?p = apple打开的情况下,您是否有一个覆盖index.css的css文件?

如果没有解决方案,我可能只是重写我的css文件以容纳所有动态页面。

更新:以下是我的代码的一些摘录。

注意:在something.inc.php页面中是index.php的链接?p = apple

<head>  
    <link href="css/index.css" rel="stylesheet" type="text/css" media="screen" />
</head> 

<?php
$pages_dir = 'pages';

if (!empty($_GET['p'])) {
    $pages = scandir($pages_dir, 0); 
    unset($pages[0], $pages[1]);

    $p = $_GET['p']; 

    if (in_array($p.'.inc.php', $pages)) {
        include ($pages_dir.'/'.$p.'.inc.php'); 
    } else {
        echo 'Sorry, page not found'; 
    }

} else {
    include($pages_dir.'/something.inc.php');
}

?>

更新2:使用标记为答案的解决方案,并且一切正常。谢谢大家的帮助!

4 个答案:

答案 0 :(得分:1)

$link = (isset($_GET['p']))? $_GET['p'] : 'index';
if(file_exists(PATH_TO_CSS_FILES.$link."css")){
  echo "<link src='$link.css' media='all' rel='stylesheet' type='text/css'>";
} else {
  echo "<link src='index.css' media='all' rel='stylesheet' type='text/css'>";
}

答案 1 :(得分:0)

我认为一种方法是你可以根据查询字符串动态生成CSS链接。你可以有单独的php文件,它将作为帮助文件,你可以包含在所有页面中。

         if($_GET['p'] == 'a')
         {
                 echo LINK OF NEW CSS File
         } 
         else
         {
             echo Link of another CSS
         }

答案 2 :(得分:0)

也许...

$page = (isset($_GET['p'])) ? $_GET['p'] : false;
if ($page){
    $css = '';
    switch ($page) {
        case 'apple':
        $css = 'apple.css';
        break;
        //other options here
    }
//link to $css
}

请记住在所有旨在覆盖原始样式的样式中使用!important

答案 3 :(得分:0)

如果你的网址是 index.php?p = apple index.php?p = orange

然后

if($_GET['p'] == 'apple')
{
   echo '<link href="css/apple.css" type="text/css" rel="stylesheet">';
} 
elseif($_GET['p'] == 'orange')
{
   echo '<link href="css/orange.css" type="text/css" rel="stylesheet">';
}

如果你的网址是 index.php product.php

然后

$file = basename($_SERVER['REQUEST_URI']);
if($file == 'index.php')
{
   echo '<link href="css/apple.css" type="text/css" rel="stylesheet">';
} 
elseif($file == 'product.php')
{
   echo '<link href="css/orange.css" type="text/css" rel="stylesheet">';
}