Обнаружение имени файла страницы с помощью php? - PullRequest
4 голосов
/ 12 января 2011

Я делаю меню на шаблоне Wordpress и мне нужно меню, чтобы определить текущую страницу и выделить ее. Так, например, мое меню:

<li><a href="index.php" class="current">Home</a></li>
<li><a href="about.php">About</a></li>

Так что, если пользователь находится на странице «О программе», я хочу, чтобы у него было «class = current». Как это возможно? Я слышал, что использование $_SERVER['PHP_SELF'] возможно? Пожалуйста, примите во внимание, что я не обладаю знаниями в php-кодировании, поэтому, пожалуйста, сделайте любые ответы подробно.

Ответы [ 3 ]

12 голосов
/ 12 января 2011

Я использую маленький фрагмент, как этот.Если ваш посетитель на about.php, $basename будет равен about.

$basename = substr(strtolower(basename($_SERVER['PHP_SELF'])),0,strlen(basename($_SERVER['PHP_SELF']))-4);

HTML-код будет выглядеть примерно так.

<li><a href="index.php"<?php if ($basename == 'index') echo ' class="current"'; ?>>Home</a></li>
<li><a href="about.php"<?php if ($basename == 'about') echo ' class="current"'; ?>>About</a></li>
1 голос
/ 12 января 2011
$myPage = $_SERVER['PHP_SELF'];
<li><a href="index.php" class="<?echo ($myPage == 'index.php'?'current':'')?>">Home</a></li>
<li><a href="about.php" class="<?echo ($myPage == 'about.php'?'current':'')?>">About</a></li>
0 голосов
/ 12 января 2011

Вы можете использовать что-то в форме:

<li><a href="index.php"<?php if($_SERVER['PHP_SELF'] == 'index.php') echo ' class="current"'); ?>>Home</a></li>
<li><a href="about.php"<?php if($_SERVER['PHP_SELF'] == 'about.php') echo ' class="current"'); ?>>About</a></li>

Тем не менее, вы, вероятно, захотите включить вышеупомянутое в функцию.

Вне зависимости, я бы порекомендовал прочитать руководство по PHP Начало работы , прежде чем идти дальше - это будет мудрое время.

...