【问题标题】:Custom Body Class from URI来自 URI 的自定义正文类
【发布时间】:2017-08-09 15:10:48
【问题描述】:

我正在研究如何将自定义类添加到我的 body 标记中。我想解析 URI 并将 URI 的每个部分作为单独的字符串放入类中。这是我所得到的。我已经解析了 URI 并将其放入 body 类中,但作为一个由 / 分隔的字符串,而不是空格。

另外,如果 URI 只是“/”,我需要 IF 语句来添加“home”。不幸的是,我当前的 IF 语句炸毁了整个页面。 :-(

<?
    $url = $_SERVER['REQUEST_URI'];
    $url = trim($url, '/');
    if $url = '' {
        $url = 'home';
    }
    endif;
?>
<body class="<?=$url?>">

【问题讨论】:

    标签: php css parsing uri


    【解决方案1】:

    试试这个

    <?
      $url = $_SERVER['REQUEST_URI'];
      $url = trim($url, '/');
      $url = str_replace ("/", " ", $url);
      if ($url == '') {
        $url = 'home';
      }
    ?>
    <body class="<?=$url?>">
    

    【讨论】:

    • 正是我想要的!你摇滚!
    • 顺便说一句,我需要做的就是将条件括在括号中。哇!
    【解决方案2】:

    我建议你使用正则表达式。

    <?php
        $url = $_SERVER['REQUEST_URI'];
        $url = trim($url, '/');
        if (preg_match("/^\\/?$/", $url)) {
            $url = 'home';
        }
        endif;
    ?>
    

    "/^\\/?$/"这是正则表达式

    • ^ - 表示字符串的开始
    • $ - 表示字符串结束
    • \\/ - 它是 / 符号,但它必须被 \\ 转义
    • ? 表示前面的签名是可选的

    当 REQUEST_URI 为空或仅包含 / 符号时匹配。

    【讨论】:

    • 无用的正则表达式,因为您刚刚修剪了 var $url
    • OP 询问修改 if 语句以允许 / 签名,这就是他的问题的答案。顺便说一句 - 没用,不是没用。
    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多