检查是否URL =所需的URL(PHP)

问题描述:

我试图检查当前URL是否等于链接类active(Bootstrap)所需的URL。检查是否URL =所需的URL(PHP)

<?php 
    If ($currenturl = "show.php?name=123") { 
     ?><li class="active"><a href="show.php?name="123"">123</a></li><?php 
    }else{ 
     ?><li class=""><a href="show.php?name="123"">123</a></li><?php 
    } 
?> 

当前URL - >$currenturl = $_SERVER['REQUEST_URI']

现在,我有这样的,如果我在show.php?name=456

see

+0

basename($ _ SERVER ['PHP_SELF']); – 2014-12-08 00:57:39

请确保您有里面的正确的比较if。您目前正在使用赋值运算符:

注意区别:

if($currenturl = "show.php?name=123") // assignment = 
    // changes $currenturl to "show.php?name=123" 
    // and then tests if("show.php?name=123") equivalent to if(true) 
    // see also http://*.com/questions/5940626/evaluation-of-assignment-in-php 

if($currenturl == "show.php?name=123") // comparison == 

二:已设置$urlpage但比较$currenturl。使用$urlpage

代码:

<?php $urlpage = $_SERVER['REQUEST_URI']; ?> 
<?php if ($urlpage == "/show.php?nom=123") { ?> 
    <li class="active"><a href="/show.php?nom=123">123</a></li> 
<?php } else { ?> 
    <li class=""><a href="/show.php?nom=123">123</a></li> 
<?php } ?> 

使用三元操作符的替代:

<li <?php echo ($urlpage == "/show.php?nom=123") ? 'class="active"' : ''; ?>><a href="/show.php?nom=123">123</a></li> 

适用于所有的网页:

<?php $pages = array('123', '456', '789'); ?> 
<ul> 
    <li <?php echo (!isset($_GET['nom']) ? 'class="active"' : ''); ?>><a href="show.php">Home</a></li> 
    <?php foreach($pages as $page): ?> 
     <?php if (isset($_GET['nom']) && $_GET['nom'] == $page) { ?> 
      <li class="active"><a href="/show.php?nom=<?php echo $page; ?>"><?php echo $page; ?></a></li> 
     <?php } else { ?> 
      <li class=""><a href="/show.php?nom=<?php echo $page; ?>"><?php echo $page; ?></a></li> 
     <?php } ?> 
    <?php endforeach; ?> 
</ul> 
+0

@dotpush它可以添加补充信息,无需删除三元的方式,因为这是一个替代方案,也是答案的一部分 – Ghost 2014-12-08 00:33:12

+0

它不工作......它只是没有激活!另外,当我点击链接时,它会转到'show.php?name =',但没有123或其他。 – 2014-12-08 00:35:45

+0

@Ghost:Oups,对不起。我甚至没有看到三元件的拆卸。 – dotpush 2014-12-08 00:43:02

的另一种方法是使用$ _GET

if(isset($_GET['name'])) 
if($_GET['name'] == '123') 
    ... 

等等

+0

是的,我改变为'如果($ _GET ['name'] =='123')'但我得到一个错误:'注意:未定义的索引:名称在C:\在线40'上的xampp \ htdocs \ cadeau noel \ cadeau.php。第40行 - >'如果($ _GET ['name'] =='123'){' – 2014-12-08 00:38:06

+0

URL是什么样子? (在你的浏览器中) – DdD 2014-12-08 00:39:03

+0

这也就是为什么我建议如果你的URL没有名字= 123或名称= 124,名称= 125等,如果(isset($ _ GET ['name']))'网址末尾,它只会发出警告。 因此,无论是在代码中添加 'if(!isset($ _ GET ['name']))$ _GET ['name'] ='';' – DdD 2014-12-08 00:42:18