简体   繁体   中英

<a href> get value in php

The current page someone is in on my website is highlighted on the navigation menu (the class "active" ). I've done this through php, which compares the current page to a string . I'd like to simplify it even further because this string is actually the href value of the menu item .

Is there a way to get the href value of this item via php? That way I could just use that variable instead.

My php code:

<?php
function curPageName()
{
    return substr($_SERVER["SCRIPT_NAME"], strrpos($_SERVER["SCRIPT_NAME"], "/") + 1);
}
function activeMenuItem($href)
{
    return (curPageName() == $href) ? "class=\"active\"" : "";
}
?>

and the html in the body:

<ul id="navilist">
    <li><a href="index.php" <?php echo activeMenuItem('index.php'); ?>>Home</a></li>
    <li><a href="resume.php" <?php echo activeMenuItem('resume.php'); ?>>Resume</a></li>
    <li><a href="projects.php" <?php echo activeMenuItem('projects.php'); ?>>Projects</a></li>
    <li><a href="contact.php" <?php echo activeMenuItem('contact.php'); ?>>Contact</a></li>
</ul>

Build your menu in a loop:

$menu_items = array(
    'Home' => 'index.php',
    'Resume' => 'resume.php'
);

<ul id="navilist">
    <?php foreach ( $menu_items as $title => $href ): ?>
        <li><a href="<?php echo $href; ?>" <?php echo activeMenuItem($href); ?>>
            <?php echo $title; ?>
        </a></li>
    <?php endforeach; ?>
</ul>

You Can't get the href value using php code.

in my knowledge - one way to get the href value

You should declare the page name with one one variable like

$home="home.php";
$resume="resume.php";
.
.
.



<ul id="navilist">
    <li><a href="<?php echo $home;?>" <?php echo activeMenuItem($home); ?>>Home</a></li>
    <li><a href="<?php echo $resume;?>" <?php echo activeMenuItem($resume); ?>>Resume</a></li>
    .
    .
    .
</ul>

I am not sure. Please check it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM