使用PHP基于浏览页面向body添加类?

时间:2018-02-07 23:03:05

标签: javascript php

我正在研究自己的php项目广告学习php,我试图通过页面名称来添加正文,如:

<body class='homepage'><!-- for index.php -->
<body class='single-post'><!-- for posts.php -->

我的代码:

<?php include "header.php";?>
<?php include "post.php";?>
<?php include "footer.php";?>

更新

我尝试了自己的工作

<?php 
    $classone = $_SERVER['REQUEST_URI'];
    if(strpos($classone, 'index') != false){
        echo "<body class='homepage'>";
    }else{
        echo "<body>";
    }
?>

但是我希望如果有任何关于php的功能可以做的工作或更好的方法来做到这一点

1 个答案:

答案 0 :(得分:0)

有点模糊的问题,但我想我明白了被问到的问题。 页面名称已从请求中提取,并通过查找表运行,以获取正文所需的类名称。

可以使用PHP_SELF索引在$ _SERVER数组中找到页面文件名,因此使用pathinfo函数可以轻松提取名称。

$page_name = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME);

接下来,需要一个查找表,将$page_name转换为css类名。我强烈反对这种做法,因为它可能导致混淆。最好保持类和页面名称彼此一致,以获得更好的可维护性和更脆弱的产品。

如果你有新的PHP(&gt; = 5.4)(你应该使用更新的版本):

$class_lookup_table = [
  'index' => 'homepage',
  'posts' => 'single-post'
];

如果你有旧的PHP(&lt; 5.4)

$class_lookup_table = array(
  'index' => 'homepage',
  'posts' => 'single-post'
);

现在您可以在HTML

中引用类名
<body class="<?php $class_lookup_table[$page_name] ?>">
相关问题