【问题标题】:Conditional CSS rules in PHP depending on filenamePHP中的条件CSS规则取决于文件名
【发布时间】:2012-08-19 18:09:20
【问题描述】:

如何在 PHP 中编写以下代码:

如果当前页面的名称是 pagex.php
那么请加载这些额外的 CSS 规则:
#DIVS { 颜色:#FFF }
如果当前页面的名称是 anotherpage.php
那么请加载以下 CSS 规则:
#DIVS { 颜色:#000 }

【问题讨论】:

  • 我不知道从哪里开始,以及有哪些方法可以测试带有或不带有扩展名的页面名称。也许有多种方法,我认为对于许多设计师来说,在这种情况下看到一些可能性是很有价值的。
  • 根据页面改变div的CSSclass,创建两条CSS规则。

标签: php css if-statement styles conditional


【解决方案1】:

像这样:

<?php
   if (basename(__FILE__) == 'pagex.php') {
      echo '#DIVS { color:#FFF }';
   } else if (basename(__FILE__) == 'anotherpage.php') {
      echo '#DIVS { color:#000 }';
   }
?>

【讨论】:

  • 您应该提到这些回显命令需要输出到页面上的正确位置 - 在&lt;style&gt; 标记内的&lt;head&gt; 元素中。
【解决方案2】:

PHP 有一些“神奇的常量”,您可以检查它们以获取这些信息。看看` __FILE__ constant

文件的完整路径和文件名。如果在包含中使用,则返回包含文件的名称。自 PHP 4.0.2 起,FILE 始终包含一个绝对路径,符号链接已解析,而在旧版本中,它在某些情况下包含相对路径。

所以你可以使用这个__FILE__ 变量并对其执行basename() 函数来获取文件名。 basename() 函数返回路径的尾随名称部分。然后你只需做一个 switch case 来匹配所需的值 -

$fileName = basename(__FILE__);
switch($fileName){
  case 'pagex.php':
    echo '<link .... src="some_stylesheet_file.css" />';
    break;
  case 'anotherpage.php':
    echo '<link .... src="another_stylesheet_file.css" />';
    break;
}

您的附加 CSS 规则可以位于这些单独的文件中。

或者,如果您不想将 css 拆分为多个文件,则可以像这样将这些特定规则回显到页面的 head 元素中 -

echo '<style type="text/css">';
$fileName = basename(__FILE__);
switch($fileName){
  case 'pagex.php':
    echo '#DIVS { color:#FFF }';
    break;
  case 'anotherpage.php':
    echo '#DIVS { color: #000 }';
    break;
} 
echo '</style>';

参考资料 -

【讨论】:

  • 非常感谢@Lix,一个问题:当我将您的提案用作包含(rules.php)并将包含导入到说index.php中时,文件名变成了rules.php,而不是index.php 的...如何解决?因为我想在各种网页中包含特殊规则。
  • 不客气!也许您可以将这些语句包装在一个函数中,并将 __FILE__ 的原始值作为参数传递...
  • 是的,解决了!再次感谢您非常广泛和彻底的回答:)
【解决方案3】:

您可以在 HTML 头部分中添加 PHP if...else 以根据页面名称加载其他样式表。

<head>
<?php
if (basename(__FILE__) == 'one.php')
     echo '<link .... src="style1.css" />';
elseif (basename(__FILE__) == 'two.php')
     echo '<link ..... src="style2.css" />';
?> 
</head>

【讨论】:

    【解决方案4】:

    您可以自定义方式使用 wordpress 的 is_page() 函数,因为它正在处理常规 php.code 是:

    <?php
    $baseurl = 'http://www.example.com'; //set the base url of the site
    $mypage1 = $baseurl."/pagex.php"; //add the rest of the url
        $mypage2 = $baseurl."/anotherpage.php"; //add the rest of the url
    $currentPage = $baseurl.$_SERVER['REQUEST_URI'];// this gets the current page url
    if($currentPage==$mypage1) {
        //do something with you style or whatever..
    }
    else if($currentPage==$mypage2)
    {
    //do something with you style or whatever..
    }
    

    ?>

    您必须根据需要进行更改。我想它会帮助你。 编码愉快!

    【讨论】:

      猜你喜欢
      • 2021-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2018-05-14
      • 1970-01-01
      相关资源
      最近更新 更多