У меня есть следующее меню:
<div id="blahblah" style="blahblah"> <a href="http://domain.com/folder/biography"><img style="blahblah" src="blahblahblahblah"></a> <a href="http://domain.com/folder/contacts"><img style="blahblah" src="blahblahblahblah"></a> <a href="http://domain.com/folder/gallery"><img style="blahblah" src="blahblahblahblah"></a> <a href="http://domain.com/folder/dontknow"><img style="blahblah" src="blahblahblahblah"></a> </div>
Я хотел бы иметь что-то, что автоматически добавляет класс = «текущий» на страницу, в которой я сейчас. Ссылки (как вы можете видеть в приведенном выше коде), как domain.com/folder/biography или domain.com/ папка / контакты, поэтому без .php / .html и т. д.
Я попробовал:
<div id="blahblah" style="blahblah"> <a <?php if (strpos($_SERVER['PHP_SELF'], 'biography')) echo 'class="current"';?> href="http://domain.com/folder/biography"><img style="blahblah" src="blahblahblahblah"></a> <a <?php if (strpos($_SERVER['PHP_SELF'], 'contacts')) echo 'class="current"';?> href="http://domain.com/folder/contacts"><img style="blahblah" src="blahblahblahblah"></a> ... ... </div>
Но это не сработает … решение со стропами кажется жизнеспособным, возможно, я делаю это неправильно ..: P
Вам следует:
strpos()
с помощью !== false
. $_SERVER['REQUEST_URI']
а не $_SERVER['PHP_SELF']
. Что-то вроде этого:
<?php function get_current($name) { if (strpos($_SERVER['REQUEST_URI'], $name) !== false) echo 'class="current"'; } ?> <div id="blahblah" style="blahblah"> <a <?php get_current('biography') ?> href="http://domain.com/folder/biography"><img style="blahblah" src="blahblahblahblah"></a> <a <?php get_current('contacts') ?> href="http://domain.com/folder/contacts"><img style="blahblah" src="blahblahblahblah"></a> ... ... </div>
если позиция равна 0, то она будет оцениваться FALSE в PHP. Вы должны проверить значение возврата, т. Е.> = 0.
Вместо strpos()
вы можете попробовать следующее:
<?php $current = basename($path, ".php"); ?> <a href="blahblah"<?php if ($current == 'biographies') echo ' class="current"'; ?> />
$current
– это имя текущего файла без расширения .php
.