2011-06-15 97 views
0

我想在/../mahjong.php上顯示DIV。所以,即使我去/../mahjong.php?layout它應隱藏的div(因爲它是不一樣的網址)根據使用PHP的URL顯示/隱藏Div

我曾嘗試以下:

// 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 ofcourse:

<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並從不隱藏它)我錯過了什麼?

非常感謝,

莫里斯

+0

您可能希望將此條件語句直接粘貼到您的模板文件中,並且僅當案例爲「true」時才顯示div,因爲沒有理由打印未顯示的HTML。 – Wex 2011-06-15 17:25:50

回答

0

更改條件:

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

這將確保請求的URI與字符串結尾。

+0

謝謝大家,這個解決方案對我很有用! – Maurice 2011-06-17 22:23:33

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"; 
} 

這可能幫助

0

檢查是否PATH_INFOQUERY_STRING是空的......如果沒有,那麼它是不是你想要的頁面。

1

檢查是否$_GET陣列已被填充或不:

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

應該是足夠的,如果你不手動添加到$_GET陣列,這將是非常愚蠢的。

+0

'$ _GET'是否包含在$ _SERVER ['PATH_INFO']中填充的相同信息? – 2011-06-15 17:33:18

+0

不,但它包含查詢字符串中的任何內容(如果存在)。 – 2011-06-15 19:44:33

+0

如果URL是'/foo/bar.php/more/info?var1 = val1&var2 = val2',該怎麼辦? – 2011-06-15 19:45:41