簡體   English   中英

使用PHP_SELF

[英]Working with PHP_SELF

不好意思,我們深表歉意。 我需要根據用戶是否在相應頁面上將類添加到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>

如您所見,取決於用戶是使用index.php還是about.php,將插入class = current。 正常工作正常,但是我在Wordpress中使用以下代碼,其中所有頁面都是這種URL:index.php?page_id = X

因此,關於頁面的URL是index.php?page_id = 9,這意味着它將始終將類輸入索引1。 我所知道的唯一解決方案是$basename == 'index'無論如何都可以是完整的URL,例如$basename == 'index.php?page_id=X'但我無法做到這一點。

救命! 請注意,我對PHP沒有經驗,所以任何詳細的答復都將不勝感激!

當前文件: __FILE__

文件dirname(__FILE__).DIRECTORY_SEPARATOR // in 5.3: __DIR__的當前文件夾dirname(__FILE__).DIRECTORY_SEPARATOR // in 5.3: __DIR__

$page = $_GET[page_id]; 

我相信如果網址是?page_id = 9,這將返回例如9

考慮到您使用的是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

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

>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM