2012-11-21 3 views
0

Я просто изучаю открытую корзину, но думаю, на этот вопрос может ответить любой, у кого есть хорошие знания PHP.выделите текущую ссылку на страницу в opencart или на любой php

Я просто пытаюсь выделить ссылку, если только на этой странице, но это не похоже на работу

<?php $tickets = 'index.php?route=product/category&path=600'; ?> 
<ul> 
    <li><a href="http://www.limerickfc.ie">Limerick FC</a></li> 
    <li><a href="<?php echo $tickets; ?>" <?php 
if (strpos($_SERVER['PHP_SELF'], $tickets)) echo "class=\"current\" "; 
?> > Tickets  </a></li> 
    <li><a href="<?php echo $home; ?>" class="current">Shop</a></li> 
</ul> 

Я знаю, что переменная $tickets прекрасно, потому что ссылка идет туда, куда его должен идти, и я знаю, класс current хорош, потому что он работает для третьего li, который является магазином.

Я использую strpos правильно?

+1

Поиск strpos. Он возвращает логический 'false', если не найден, или позицию, если она найдена, которая все еще может быть' 0'. Используйте 'strpos (..)! == false', чтобы проверить, не найден ли он. – MrCode

ответ

1

Я думаю, вы должны использовать basename($_SERVER['REQUEST_URI']);.

<a href="<?php echo $tickets; ?>" <?php echo (basename($_SERVER['REQUEST_URI']) == $tickets) ? '"class=\"current\"' : ""; ?>>Tickets</a> 

было бы лучше, если вы объявите basename($_SERVER['REQUEST_URI']) в переменной.

+0

Спасибо, что я использовал 'echo', чтобы увидеть, что выдавал' $ _SERVER ['PHP_SELF'] ', и он не указывал фактический текущий текущий url. – Adrian

0

strpos() возвращает false, если строка соответствует значению char 0, что и указано выше.

Использовать выборочные сравнения === для истинного результата.

В качестве примечания я использовал substr_count() в прошлом для аналогичных обстоятельств, не нуждаясь в одинаковом сравнении!

Смежные вопросы