PHP代表任何数字

时间:2015-06-23 15:29:33

标签: php html menu

我使用一些php帮助创建了此菜单,以便根据页面请求添加.active

像这样:

<ul class="menu_lateral">
    <li><a <?php if(($_REQUEST['p']=="estufas") || ($_REQUEST['p']=="estufas-1")){?> class="active" <?php } ?> href="index.php?p=estufas">Estufas</a></li>
    <li><a <?php if($_REQUEST['p']=="recuperadores"){?> class="active" <?php } ?> href="index.php?p=recuperadores">Recuperadores</a></li>
    <li><a <?php if($_REQUEST['p']=="salamandras"){?> class="active" <?php } ?> href="index.php?p=salamandras">Salamandras</a></li>
    <li><a <?php if($_REQUEST['p']=="churrasqueiras"){?> class="active" <?php } ?> href="index.php?p=churrasqueiras">Churrasqueiras</a></li>
</ul>

正如您在第一项上看到的,还有另一个ESTUFA页面。因此,如果请求是ESTUFAS,它将添加.active并在请求为ESTUFAS-1时添加它。

问题是,我想添加很多页面,estufas-1,2,3,4,5等等,为此我必须添加很多OR到我的If或者也许把它改成一个案例。但这似乎是太多的工作,而且不会有动力。

有没有办法让它成为任何数字,例如:

if(($_REQUEST['p']=="estufas") || ($_REQUEST['p']=="estufas-ANYNUMBER"))

如果请求是estufas或estufas-1或estufas-2或estufas-3等,它会添加.active

这会让事情变得如此简单。

有没有办法做到这一点?还是其他任何解决方案?

2 个答案:

答案 0 :(得分:2)

您可以随时使用stripos之类的内容来查找是否存在

if(stripos($_REQUEST['p'], 'estufas') !== false) // We have estufas

答案 1 :(得分:1)

如果条件:

,您可以在里面使用此代码
preg_match('/^estufas(-\d)?$/', $_REQUEST['p'])

结果将是:

<ul class="menu_lateral">
    <li><a <?php if(preg_match('/^estufas(-\d)?$/', $_REQUEST['p'])){?> class="active" <?php } ?> href="index.php?p=estufas">Estufas</a></li>
    <li><a <?php if($_REQUEST['p']=="recuperadores"){?> class="active" <?php } ?> href="index.php?p=recuperadores">Recuperadores</a></li>
    <li><a <?php if($_REQUEST['p']=="salamandras"){?> class="active" <?php } ?> href="index.php?p=salamandras">Salamandras</a></li>
    <li><a <?php if($_REQUEST['p']=="churrasqueiras"){?> class="active" <?php } ?> href="index.php?p=churrasqueiras">Churrasqueiras</a></li>
</ul>