PHP foreach获取URL的一部分并匹配链接

时间:2013-12-23 13:44:26

标签: php url joomla foreach

我有一个Joomla网站,我正在尝试根据foreach声明中的链接检查部分网址。

在Web浏览器中查看时,唯一更改的是URL中引用布局的部分。以下是一些例子:

在Joomla 3中,您可以使用以下php字符串获取布局:

<?php
$app = JFactory::getApplication();
$layout = $app->input->getCmd('layout', '');
?>

在我的php文件中,我有以下foreach循环:

<?php foreach($this->employerlinks as $lnk) { ?>
<li><a href="<?php echo $lnk[0]; ?>"><?php echo $lnk[1]; ?></a></li>
<?php } ?>

基本上,如果<?php echo $lnk[0]; ?>的'layout'与页面URL的'layout'部分相同,我想在列表项中添加一个'active'类。

我尝试过使用:

<?php foreach($this->employerlinks as $lnk) { ?>
<li class="<?php if ($layout == 'controlpanel'){echo ' active';}; ?>"><a href="<?php echo $lnk[0]; ?>"><?php echo $lnk[1]; ?></a></li>
<?php } ?>

哪种工作有效,但显然如果页面布局为'controlpanel',它会为所有列表项添加“活动”类,但这不是我想要的。我希望这个问题有道理。

谢谢

1 个答案:

答案 0 :(得分:1)

这将在$ lnk [0]的每个实例中搜索字符串'controlpanel':

<?php foreach($this->employerlinks as $lnk) { ?>
<li class="<?php if (strpos($lnk[0],'controlpanel')){echo ' active';}; ?>"><a href="<?php echo $lnk[0]; ?>"><?php echo $lnk[1]; ?></a></li>
<?php } ?>

显然,如果您不希望“控制面板”被硬编码,请将其替换为$_GET['layout']或您定义的$layout