繁体   English   中英

根据使用 PHP 浏览的页面向正文添加类?

[英]add class to body based on browsed page with 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 上是否有任何功能可以完成这项工作或有更好的方法来完成这项工作

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

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

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

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

如果您有新的 PHP (>=5.4)(您应该使用较新的版本):

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

如果你有旧的 PHP (<5.4)

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

现在您可以在 HTML 中引用类名

<body class="<?php $class_lookup_table[$page_name] ?>">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM