Работа с PHP_SELF - PullRequest
       2

Работа с PHP_SELF

0 голосов
/ 13 января 2011

Извинения за плохое название.Мне нужно добавить класс в тег A в зависимости от того, находится ли пользователь на соответствующей странице.Чтобы уточнить, вот код:

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

И затем я использую этот код в меню:

<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>

Как вы можете видеть, в зависимости от того, находится ли пользователь в индексе.php или about.php, класс = текущий будет вставлен.Это нормально работает, но я использую этот код в Wordpress, где все страницы имеют URL-адрес этого типа: index.php? Page_id = X

Таким образом, URL-адрес страницы о странице - index.php? Page_id = 9,Это означает, что он всегда будет вводить класс в индексный.Единственное, что мне известно, это то, что $basename == 'index' может в любом случае быть полным URL, например, $basename == 'index.php?page_id=X', но я не могу заставить это работать.

Помогите!Обратите внимание, что у меня нет опыта работы с PHP, поэтому любые ответы с подробностями будут приветствоваться!

Ответы [ 4 ]

1 голос
/ 13 января 2011

текущий файл: __FILE__

текущая папка вашего файла dirname(__FILE__).DIRECTORY_SEPARATOR // in 5.3: __DIR__

0 голосов
/ 14 января 2011
function GetFileName()
{
    $currentFile = basename($_SERVER["PHP_SELF"]);
    $parts = Explode('.', $currentFile);
    return $parts[0];
}
$basename = GetFileName();

<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

>

0 голосов
/ 13 января 2011

Учитывая, что вы используете Wordpress, я бы посоветовал вам создать переменную в верхней части страницы, которая определяет текущее местоположение этой страницы.

$path_parts = pathinfo($_SERVER['PHP_SELF']);

$current = strtolower($path_parts['filename']);

Затем возьмите эту переменную и установите ее в <a></a> следующим образом:

<a <?php if($current == 'about') echo 'class="current"'; ?> href="#">About</a>

Или как-то так, это все равно начало.

дополнительная информация: http://php.net/manual/en/function.pathinfo.php

0 голосов
/ 13 января 2011
$page = $_GET[page_id]; 

Я полагаю, это вернется к примеру 9, если URL-адрес? Page_id = 9

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...