使用PHP基于URL显示/隐藏Div

时间:2011-06-15 17:19:40

标签: php html css

我想在/../mahjong.php上显示DIV。所以即使我去了/../mahjong.php?layout它应该隐藏div(因为它不是相同的url)

我尝试了以下内容:

// We're NOT on the home page
if (strpos($_SERVER['REQUEST_URI'], "/games/mahjong/mahjong.php") >= 0) {
  $style = "display: none";
}
else {
  $style = "display: inline";
}

我的分歧:

<div class="menu" id="menu" style="<?php echo $style; ?>">

但是如果我去/games/mahjong/mahjong.php?layout它不会改变风格。我回应道:

echo $_SERVER['REQUEST_URI'];

并且它更改为/games/mahjong/mahjong.php?layout,那么为什么样式不能设置为内联?

 if (strpos($_SERVER['REQUEST_URI'], "/games/mahjong/mahjong.php") === false) {

也没用。 (这将显示div并且永远不会隐藏它)我缺少什么?

非常感谢,

莫里斯

4 个答案:

答案 0 :(得分:1)

检查是否已填充$_GET数组:

<?php if (empty($_GET)): ?>
<div>
...
</div>
<?php endif; ?>

如果您没有手动添加到$_GET数组,那就足够了,这将非常愚蠢。

答案 1 :(得分:0)

strpos();只搜索该字符串,并在两种情况下都找到字符串 strpos();不是确切的搜索!

// We're NOT on the home page
if (strpos($_SERVER['REQUEST_URI'], "/games/mahjong/mahjong.php?layout") >= 0) {
  $style = "display: inline";
}
else {
  $style = "display: none";
}

或者您可以使用

// We're NOT on the home page
if (isset($_GET['layout'])) {
  $style = "display: inline";
}
else {
  $style = "display: none";
}

这可能会有所帮助

答案 2 :(得分:0)

检查PATH_INFOQUERY_STRING是否为空......如果没有,那么它不是您想要的页面。

答案 3 :(得分:0)

将您的条件更改为:

strrpos($_SERVER['REQUEST_URI'], '/games/mahjong/mahjong.php') === strlen($_SERVER['REQUEST_URI']) - strlen('/games/mahjong/mahjong.php')

这将确保请求uri以该字符串结尾。